diff --git a/ChangeLog.adoc b/ChangeLog.adoc index 2a35cf730..df237125e 100644 --- a/ChangeLog.adoc +++ b/ChangeLog.adoc @@ -20,6 +20,7 @@ https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes] New features:: + * api: add argument "strip_items" in function string_split * exec: evaluate option exec.command.shell, change default value to "${env:SHELL}" (issue #1356) Bug fixes:: diff --git a/doc/en/weechat_plugin_api.en.adoc b/doc/en/weechat_plugin_api.en.adoc index 46914c9ae..a124aeb45 100644 --- a/doc/en/weechat_plugin_api.en.adoc +++ b/doc/en/weechat_plugin_api.en.adoc @@ -1483,7 +1483,7 @@ This function is not available in scripting API. ==== string_split -_Updated in 2.5._ +_Updated in 2.5, 2.6._ Split a string according to one or more delimiter(s). @@ -1492,13 +1492,16 @@ Prototype: [source,C] ---- char **weechat_string_split (const char *string, const char *separators, - int flags, int num_items_max, int *num_items); + const char *strip_items, int flags, + int num_items_max, int *num_items); ---- Arguments: * _string_: string to split * _separators_: delimiters used for split +* _strip_items_: chars to strip from returned items (left/right); + optional, can be NULL * _flags_: combination values to change the default behavior; if the value is 0, the default behavior is used (no strip of separators at beginning/end of string, multiple separators are kept as-is so empty strings can be returned); @@ -1536,7 +1539,7 @@ C example: char **argv; int argc; -argv = weechat_string_split ("abc de fghi ", " ", 0, 0, &argc); +argv = weechat_string_split ("abc de fghi ", " ", NULL, 0, 0, &argc); /* result: argv[0] == "abc" argv[1] == "de" argv[2] == "" @@ -1547,7 +1550,7 @@ argv = weechat_string_split ("abc de fghi ", " ", 0, 0, &argc); */ weechat_string_free_split (argv); -argv = weechat_string_split ("abc de fghi ", " ", +argv = weechat_string_split ("abc de fghi ", " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1560,7 +1563,7 @@ argv = weechat_string_split ("abc de fghi ", " ", */ weechat_string_free_split (argv); -argv = weechat_string_split ("abc de fghi ", " ", +argv = weechat_string_split ("abc de fghi ", " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS @@ -1574,7 +1577,7 @@ argv = weechat_string_split ("abc de fghi ", " ", */ weechat_string_free_split (argv); -argv = weechat_string_split ("abc de fghi ", " ", +argv = weechat_string_split ("abc de fghi ", " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS | WEECHAT_STRING_SPLIT_KEEP_EOL, @@ -1586,6 +1589,19 @@ argv = weechat_string_split ("abc de fghi ", " ", argc == 3 */ weechat_string_free_split (argv); + +argv = weechat_string_split (" abc, de,, fghi ", ",", " ", + WEECHAT_STRING_SPLIT_STRIP_LEFT + | WEECHAT_STRING_SPLIT_STRIP_RIGHT + | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, + 0, &argc); +/* result: argv[0] == "abc" + argv[1] == "de" + argv[2] == "fghi" + argv[3] == NULL + argc == 3 +*/ +weechat_string_free_split (argv); ---- [NOTE] diff --git a/doc/fr/weechat_plugin_api.fr.adoc b/doc/fr/weechat_plugin_api.fr.adoc index 3df7bc2d8..ac3ad25dc 100644 --- a/doc/fr/weechat_plugin_api.fr.adoc +++ b/doc/fr/weechat_plugin_api.fr.adoc @@ -1509,7 +1509,7 @@ Cette fonction n'est pas disponible dans l'API script. ==== string_split -_Mis à jour dans la 2.5._ +_Mis à jour dans la 2.5, 2.6._ Découper une chaîne à l'aide de délimiteur(s). @@ -1518,13 +1518,16 @@ Prototype : [source,C] ---- char **weechat_string_split (const char *string, const char *separators, - int flags, int num_items_max, int *num_items); + const char *strip_items, int flags, + int num_items_max, int *num_items); ---- Paramètres : * _string_ : chaîne à découper * _separators_ : délimiteurs utilisés pour le découpage +* _strip_items_ : caractères à supprimer des chaînes retournées (gauche/droite) ; + optionnel, peut être NULL * _flags_ : combinaison de valeurs pour changer le comportement par défaut ; si la valeur est 0, le comportement par défaut est utilisé (pas de suppression des séparateurs en début/fin de chaîne, plusieurs séparateurs consécutifs @@ -1564,7 +1567,7 @@ Exemples en C : char **argv; int argc; -argv = weechat_string_split ("abc de fghi ", " ", 0, 0, &argc); +argv = weechat_string_split ("abc de fghi ", " ", NULL, 0, 0, &argc); /* résultat : argv[0] == "abc" argv[1] == "de" argv[2] == "" @@ -1575,7 +1578,7 @@ argv = weechat_string_split ("abc de fghi ", " ", 0, 0, &argc); */ weechat_string_free_split (argv); -argv = weechat_string_split ("abc de fghi ", " ", +argv = weechat_string_split ("abc de fghi ", " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1588,7 +1591,7 @@ argv = weechat_string_split ("abc de fghi ", " ", */ weechat_string_free_split (argv); -argv = weechat_string_split ("abc de fghi ", " ", +argv = weechat_string_split ("abc de fghi ", " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS @@ -1602,7 +1605,7 @@ argv = weechat_string_split ("abc de fghi ", " ", */ weechat_string_free_split (argv); -argv = weechat_string_split ("abc de fghi ", " ", +argv = weechat_string_split ("abc de fghi ", " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS | WEECHAT_STRING_SPLIT_KEEP_EOL, @@ -1614,6 +1617,19 @@ argv = weechat_string_split ("abc de fghi ", " ", argc == 3 */ weechat_string_free_split (argv); + +argv = weechat_string_split (" abc, de,, fghi ", ",", " ", + WEECHAT_STRING_SPLIT_STRIP_LEFT + | WEECHAT_STRING_SPLIT_STRIP_RIGHT + | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, + 0, &argc); +/* résultat : argv[0] == "abc" + argv[1] == "de" + argv[2] == "fghi" + argv[3] == NULL + argc == 3 +*/ +weechat_string_free_split (argv); ---- [NOTE] diff --git a/doc/it/weechat_plugin_api.it.adoc b/doc/it/weechat_plugin_api.it.adoc index ff29620cf..27b40981e 100644 --- a/doc/it/weechat_plugin_api.it.adoc +++ b/doc/it/weechat_plugin_api.it.adoc @@ -1555,7 +1555,7 @@ Questa funzione non è disponibile nelle API per lo scripting. ==== string_split // TRANSLATION MISSING -_Updated in 2.5._ +_Updated in 2.5, 2.6._ Divide una stringa in base a uno o più delimitatori. @@ -1564,13 +1564,17 @@ Prototipo: [source,C] ---- char **weechat_string_split (const char *string, const char *separators, - int flags, int num_items_max, int *num_items); + const char *strip_items, int flags, + int num_items_max, int *num_items); ---- Argomenti: * _string_: stringa da dividere * _separators_: delimitatori usati per dividere +// TRANSLATION MISSING +* _strip_items_: chars to strip from returned items (left/right); + optional, can be NULL * _flags_: combination values to change the default behavior; if the value is 0, the default behavior is used (no strip of separators at beginning/end of string, multiple separators are kept as-is so empty strings can be returned); @@ -1609,7 +1613,7 @@ Esempi: char **argv; int argc; -argv = weechat_string_split ("abc de fghi ", " ", 0, 0, &argc); +argv = weechat_string_split ("abc de fghi ", " ", NULL, 0, 0, &argc); /* result: argv[0] == "abc" argv[1] == "de" argv[2] = "" @@ -1620,7 +1624,7 @@ argv = weechat_string_split ("abc de fghi ", " ", 0, 0, &argc); */ weechat_string_free_split (argv); -argv = weechat_string_split ("abc de fghi ", " ", +argv = weechat_string_split ("abc de fghi ", " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1633,7 +1637,7 @@ argv = weechat_string_split ("abc de fghi ", " ", */ weechat_string_free_split (argv); -argv = weechat_string_split ("abc de fghi ", " ", +argv = weechat_string_split ("abc de fghi ", " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS @@ -1647,7 +1651,7 @@ argv = weechat_string_split ("abc de fghi ", " ", */ weechat_string_free_split (argv); -argv = weechat_string_split ("abc de fghi ", " ", +argv = weechat_string_split ("abc de fghi ", " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS | WEECHAT_STRING_SPLIT_KEEP_EOL, @@ -1659,6 +1663,19 @@ argv = weechat_string_split ("abc de fghi ", " ", argc == 3 */ weechat_string_free_split (argv); + +argv = weechat_string_split (" abc, de,, fghi ", ",", " ", + WEECHAT_STRING_SPLIT_STRIP_LEFT + | WEECHAT_STRING_SPLIT_STRIP_RIGHT + | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, + 0, &argc); +/* result: argv[0] == "abc" + argv[1] == "de" + argv[2] == "fghi" + argv[3] == NULL + argc == 3 +*/ +weechat_string_free_split (argv); ---- [NOTE] diff --git a/doc/ja/weechat_plugin_api.ja.adoc b/doc/ja/weechat_plugin_api.ja.adoc index 9e5783288..b9da4e855 100644 --- a/doc/ja/weechat_plugin_api.ja.adoc +++ b/doc/ja/weechat_plugin_api.ja.adoc @@ -1489,7 +1489,7 @@ if (weechat_string_regcomp (&my_regex, "([0-9]{4})-([0-9]{2})-([0-9]{2})", ==== string_split -_WeeChat バージョン 2.5 で更新。_ +_WeeChat バージョン 2.5、2.6 で更新。_ 1 つ以上の区切り文字に従って文字列を分割。 @@ -1498,13 +1498,17 @@ _WeeChat バージョン 2.5 で更新。_ [source,C] ---- char **weechat_string_split (const char *string, const char *separators, - int flags, int num_items_max, int *num_items); + const char *strip_items, int flags, + int num_items_max, int *num_items); ---- 引数: * _string_: 分割する文字列 * _separators_: 分割に使う区切り文字 +// TRANSLATION MISSING +* _strip_items_: chars to strip from returned items (left/right); + optional, can be NULL * _flags_: デフォルト動作を変更するビットフラグの組合せ値; 値が 0 の場合、デフォルト動作 (文字列の先頭と末尾にある区切り文字を削除しない、連続する区切り文字を 1 つにまとめない) @@ -1542,7 +1546,7 @@ C 言語での使用例: char **argv; int argc; -argv = weechat_string_split ("abc de fghi ", " ", 0, 0, &argc); +argv = weechat_string_split ("abc de fghi ", " ", NULL, 0, 0, &argc); /* result: argv[0] == "abc" argv[1] == "de" argv[2] == "" @@ -1553,7 +1557,7 @@ argv = weechat_string_split ("abc de fghi ", " ", 0, 0, &argc); */ weechat_string_free_split (argv); -argv = weechat_string_split ("abc de fghi ", " ", +argv = weechat_string_split ("abc de fghi ", " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1566,7 +1570,7 @@ argv = weechat_string_split ("abc de fghi ", " ", */ weechat_string_free_split (argv); -argv = weechat_string_split ("abc de fghi ", " ", +argv = weechat_string_split ("abc de fghi ", " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS @@ -1580,7 +1584,7 @@ argv = weechat_string_split ("abc de fghi ", " ", */ weechat_string_free_split (argv); -argv = weechat_string_split ("abc de fghi ", " ", +argv = weechat_string_split ("abc de fghi ", " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS | WEECHAT_STRING_SPLIT_KEEP_EOL, @@ -1592,6 +1596,19 @@ argv = weechat_string_split ("abc de fghi ", " ", argc == 3 */ weechat_string_free_split (argv); + +argv = weechat_string_split (" abc, de,, fghi ", ",", " ", + WEECHAT_STRING_SPLIT_STRIP_LEFT + | WEECHAT_STRING_SPLIT_STRIP_RIGHT + | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, + 0, &argc); +/* result: argv[0] == "abc" + argv[1] == "de" + argv[2] == "fghi" + argv[3] == NULL + argc == 3 +*/ +weechat_string_free_split (argv); ---- [NOTE] diff --git a/src/core/hook/wee-hook-command.c b/src/core/hook/wee-hook-command.c index 31d9a90d5..4708a4518 100644 --- a/src/core/hook/wee-hook-command.c +++ b/src/core/hook/wee-hook-command.c @@ -174,6 +174,7 @@ hook_command_build_completion (struct t_hook_command *hook_command) hook_command->cplt_template_args[i] = string_split ( hook_command->cplt_templates[i], " ", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -218,6 +219,7 @@ hook_command_build_completion (struct t_hook_command *hook_command) items = string_split ( hook_command->cplt_template_args[j][i], "|", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -349,7 +351,7 @@ hook_command_exec (struct t_gui_buffer *buffer, int any_plugin, if (hook_command_run_exec (buffer, string) == WEECHAT_RC_OK_EAT) return HOOK_COMMAND_EXEC_OK; - argv = string_split (string, " ", + argv = string_split (string, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -359,7 +361,7 @@ hook_command_exec (struct t_gui_buffer *buffer, int any_plugin, string_free_split (argv); return HOOK_COMMAND_EXEC_NOT_FOUND; } - argv_eol = string_split (string, " ", + argv_eol = string_split (string, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS diff --git a/src/core/hook/wee-hook-focus.c b/src/core/hook/wee-hook-focus.c index 357c82087..dd303a243 100644 --- a/src/core/hook/wee-hook-focus.c +++ b/src/core/hook/wee-hook-focus.c @@ -233,7 +233,7 @@ hook_focus_get_data (struct t_hashtable *hashtable_focus1, keys = hashtable_get_string (hashtable1, "keys"); if (keys) { - list_keys = string_split (keys, ",", + list_keys = string_split (keys, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/core/hook/wee-hook-line.c b/src/core/hook/wee-hook-line.c index e6e0e498c..5c16bf63d 100644 --- a/src/core/hook/wee-hook-line.c +++ b/src/core/hook/wee-hook-line.c @@ -79,6 +79,7 @@ hook_line (struct t_weechat_plugin *plugin, const char *buffer_type, new_hook_line->buffers = string_split ( (buffer_name && buffer_name[0]) ? buffer_name : "*", ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/core/wee-command.c b/src/core/wee-command.c index e436eb475..dd3abb50e 100644 --- a/src/core/wee-command.c +++ b/src/core/wee-command.c @@ -4554,7 +4554,7 @@ COMMAND_CALLBACK(plugin) { if (argc > 2) { - plugin_argv = string_split (argv_eol[2], " ", + plugin_argv = string_split (argv_eol[2], " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -4573,7 +4573,7 @@ COMMAND_CALLBACK(plugin) plugin_argc = 0; if (argc > 3) { - plugin_argv = string_split (argv_eol[3], " ", + plugin_argv = string_split (argv_eol[3], " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -4595,7 +4595,7 @@ COMMAND_CALLBACK(plugin) if (argc > 3) { plugin_argv = string_split ( - argv_eol[3], " ", + argv_eol[3], " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/core/wee-completion.c b/src/core/wee-completion.c index b45e331c3..e37b6186e 100644 --- a/src/core/wee-completion.c +++ b/src/core/wee-completion.c @@ -964,7 +964,7 @@ completion_list_add_plugins_commands_cb (const void *pointer, void *data, if (!completion->args) return WEECHAT_RC_OK; - argv = string_split (completion->args, " ", + argv = string_split (completion->args, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1653,7 +1653,7 @@ completion_list_add_env_value_cb (const void *pointer, void *data, if (completion->args) { - argv = string_split (completion->args, " ", + argv = string_split (completion->args, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/core/wee-config-file.c b/src/core/wee-config-file.c index 3ffaa5a20..5b014c27d 100644 --- a/src/core/wee-config-file.c +++ b/src/core/wee-config-file.c @@ -649,6 +649,7 @@ config_file_new_option (struct t_config_file *config_file, new_option->string_values = string_split ( string_values, "|", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/core/wee-config.c b/src/core/wee-config.c index 0e745bc58..5e535cecd 100644 --- a/src/core/wee-config.c +++ b/src/core/wee-config.c @@ -443,7 +443,7 @@ config_set_word_chars (const char *str_word_chars, if (!str_word_chars || !str_word_chars[0]) return; - items = string_split (str_word_chars, ",", + items = string_split (str_word_chars, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -718,6 +718,7 @@ config_set_nick_colors () config_nick_colors = string_split ( CONFIG_STRING(config_color_chat_nick_colors), ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -753,11 +754,14 @@ config_change_look_nick_color_force (const void *pointer, void *data, hashtable_remove_all (config_hashtable_nick_color_force); } - items = string_split (CONFIG_STRING(config_look_nick_color_force), ";", + items = string_split (CONFIG_STRING(config_look_nick_color_force), + ";", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, - 0, &num_items); + 0, + &num_items); if (items) { for (i = 0; i < num_items; i++) @@ -1245,6 +1249,7 @@ config_change_completion_partial_completion_templates (const void *pointer, items = string_split ( CONFIG_STRING(config_completion_partial_completion_templates), ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1329,6 +1334,7 @@ config_change_plugin_extension (const void *pointer, void *data, config_plugin_extensions = string_split ( CONFIG_STRING(config_plugin_extension), ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1974,7 +1980,7 @@ config_weechat_layout_read_cb (const void *pointer, void *data, if (string_strcasecmp (ptr_option_name, "buffer") == 0) { - argv = string_split (value, ";", + argv = string_split (value, ";", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1993,7 +1999,7 @@ config_weechat_layout_read_cb (const void *pointer, void *data, } else if (string_strcasecmp (ptr_option_name, "window") == 0) { - argv = string_split (value, ";", + argv = string_split (value, ";", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -2307,12 +2313,12 @@ config_weechat_filter_read_cb (const void *pointer, void *data, if (option_name && value && value[0]) { - argv = string_split (value, ";", + argv = string_split (value, ";", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, 0, &argc); - argv_eol = string_split (value, ";", + argv_eol = string_split (value, ";", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS diff --git a/src/core/wee-input.c b/src/core/wee-input.c index 31c7e3537..775773984 100644 --- a/src/core/wee-input.c +++ b/src/core/wee-input.c @@ -107,6 +107,7 @@ input_exec_command (struct t_gui_buffer *buffer, new_commands_allowed = string_split ( commands_allowed, ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/core/wee-secure.c b/src/core/wee-secure.c index 3a451b94d..92b5c2f35 100644 --- a/src/core/wee-secure.c +++ b/src/core/wee-secure.c @@ -456,6 +456,7 @@ secure_decrypt_data_not_decrypted (const char *passphrase) keys = string_split (hashtable_get_string (secure_hashtable_data_encrypted, "keys"), ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/core/wee-string.c b/src/core/wee-string.c index 6741f9e66..19a25b28b 100644 --- a/src/core/wee-string.c +++ b/src/core/wee-string.c @@ -1794,6 +1794,20 @@ string_replace_regex (const char *string, void *regex, const char *replace, * This function must not be called directly (call string_split or * string_split_shared instead). * + * Arguments: + * string: the string to split + * separators: the separators to split on (commonly just one char like " " + * or ",") + * strip_items: chars to strip from extracted items (left/right), + * for example " " when "separators" does not contain a space; + * this argument can be NULL (nothing is stripped) + * flags: combination of flags (see below) + * num_items_max: the max number of items to return (0 = no limit) + * num_items: if not NULL, the variable is set with the number of items + * returned + * shared: 1 if the strings are "shared strings" (created with the function + * string_share_get), otherwise 0 for allocated strings + * * The flags is a combination of flags: * - WEECHAT_STRING_SPLIT_STRIP_LEFT: strip separators on the left * (beginning of string) @@ -1804,7 +1818,8 @@ string_replace_regex (const char *string, void *regex, const char *replace, * - WEECHAT_STRING_SPLIT_KEEP_EOL: keep end of line for each value * * Examples: - * string_split ("abc de fghi ", " ", 0, 0, &argc) + * + * string_split ("abc de fghi ", " ", NULL, 0, 0, &argc) * ==> array[0] == "abc" * array[1] == "de" * array[2] == "" @@ -1812,7 +1827,8 @@ string_replace_regex (const char *string, void *regex, const char *replace, * array[4] == "" * array[5] == NULL * argc == 5 - * string_split ("abc de fghi ", " ", + * + * string_split ("abc de fghi ", " ", NULL, * WEECHAT_STRING_SPLIT_STRIP_LEFT * | WEECHAT_STRING_SPLIT_STRIP_RIGHT * | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1822,7 +1838,8 @@ string_replace_regex (const char *string, void *regex, const char *replace, * array[2] == "fghi" * array[3] == NULL * argc == 3 - * string_split ("abc de fghi ", " ", + * + * string_split ("abc de fghi ", " ", NULL, * WEECHAT_STRING_SPLIT_STRIP_LEFT * | WEECHAT_STRING_SPLIT_STRIP_RIGHT * | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS @@ -1833,7 +1850,8 @@ string_replace_regex (const char *string, void *regex, const char *replace, * array[2] == "fghi" * array[3] == NULL * argc == 3 - * string_split ("abc de fghi ", " ", + * + * string_split ("abc de fghi ", " ", NULL, * WEECHAT_STRING_SPLIT_STRIP_LEFT * | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS * | WEECHAT_STRING_SPLIT_KEEP_EOL, @@ -1843,15 +1861,38 @@ string_replace_regex (const char *string, void *regex, const char *replace, * array[2] == "fghi " * array[3] == NULL * argc == 3 + * + * string_split (",abc , de , fghi,", ",", NULL, + * WEECHAT_STRING_SPLIT_STRIP_LEFT + * | WEECHAT_STRING_SPLIT_STRIP_RIGHT + * | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS + * | WEECHAT_STRING_SPLIT_KEEP_EOL, + * 0, &argc) + * ==> array[0] == "abc " + * array[1] == " de " + * array[2] == " fghi " + * array[3] == NULL + * argc == 3 + * + * string_split (",abc ,, de , fghi,", ",", " ", + * WEECHAT_STRING_SPLIT_STRIP_LEFT + * | WEECHAT_STRING_SPLIT_STRIP_RIGHT + * | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, + * 0, &argc) + * ==> array[0] == "abc" + * array[1] == "de" + * array[2] == "fghi" + * array[3] == NULL + * argc == 3 */ char ** -string_split_internal (const char *string, const char *separators, int flags, +string_split_internal (const char *string, const char *separators, + const char *strip_items, int flags, int num_items_max, int *num_items, int shared) { int i, j, count_items; - char *string2, **array; - char *ptr, *ptr1, *ptr2; + char *string2, **array, *temp_str, *ptr, *ptr1, *ptr2; const char *str_shared; if (num_items) @@ -1952,7 +1993,27 @@ string_split_internal (const char *string, const char *separators, int flags, { if (flags & WEECHAT_STRING_SPLIT_KEEP_EOL) { - array[i] = (shared) ? (char *)string_shared_get (ptr1) : strdup (ptr1); + if (shared) + { + if (strip_items && strip_items[0]) + { + temp_str = string_strip (ptr1, 1, 1, strip_items); + if (!temp_str) + goto error; + array[i] = (char *)string_shared_get (temp_str); + free (temp_str); + } + else + { + array[i] = (char *)string_shared_get (ptr1); + } + } + else + { + array[i] = (strip_items && strip_items[0]) ? + string_strip (ptr1, 1, 1, strip_items) : + strdup (ptr1); + } if (!array[i]) goto error; } @@ -1963,6 +2024,14 @@ string_split_internal (const char *string, const char *separators, int flags, goto error; strncpy (array[i], ptr1, ptr2 - ptr1); array[i][ptr2 - ptr1] = '\0'; + if (strip_items && strip_items[0]) + { + temp_str = string_strip (array[i], 1, 1, strip_items); + if (!temp_str) + goto error; + free (array[i]); + array[i] = temp_str; + } if (shared) { str_shared = string_shared_get (array[i]); @@ -2019,10 +2088,11 @@ error: */ char ** -string_split (const char *string, const char *separators, int flags, +string_split (const char *string, const char *separators, + const char *strip_items, int flags, int num_items_max, int *num_items) { - return string_split_internal (string, separators, flags, + return string_split_internal (string, separators, strip_items, flags, num_items_max, num_items, 0); } @@ -2034,10 +2104,11 @@ string_split (const char *string, const char *separators, int flags, */ char ** -string_split_shared (const char *string, const char *separators, int flags, +string_split_shared (const char *string, const char *separators, + const char *strip_items, int flags, int num_items_max, int *num_items) { - return string_split_internal (string, separators, flags, + return string_split_internal (string, separators, strip_items, flags, num_items_max, num_items, 1); } @@ -2445,7 +2516,7 @@ string_split_tags (const char *tags, int *num_tags) if (tags) { - tags_array_temp = string_split (tags, ",", + tags_array_temp = string_split (tags, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -2458,7 +2529,8 @@ string_split_tags (const char *tags, int *num_tags) for (i = 0; i < tags_count; i++) { tags_array[i] = string_split_shared (tags_array_temp[i], - "+", 0, 0, + "+", NULL, + 0, 0, NULL); } tags_array[tags_count] = NULL; diff --git a/src/core/wee-string.h b/src/core/wee-string.h index 931c4fa36..ef34af417 100644 --- a/src/core/wee-string.h +++ b/src/core/wee-string.h @@ -87,10 +87,11 @@ extern char *string_replace_regex (const char *string, void *regex, char *(*callback)(void *data, const char *text), void *callback_data); extern char **string_split (const char *string, const char *separators, - int flags, int num_items_max, int *num_items); + const char *strip_items, int flags, + int num_items_max, int *num_items); extern char **string_split_shared (const char *string, const char *separators, - int flags, int num_items_max, - int *num_items); + const char *strip_items, int flags, + int num_items_max, int *num_items); extern char **string_split_shell (const char *string, int *num_items); extern void string_free_split (char **split_string); extern void string_free_split_shared (char **split_string); diff --git a/src/core/wee-upgrade-file.c b/src/core/wee-upgrade-file.c index 91fad48c3..ba0dcb2c9 100644 --- a/src/core/wee-upgrade-file.c +++ b/src/core/wee-upgrade-file.c @@ -291,7 +291,7 @@ upgrade_file_write_object (struct t_upgrade_file *upgrade_file, int object_id, fields = infolist_fields (infolist); if (fields) { - argv = string_split (fields, ",", + argv = string_split (fields, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/core/wee-url.c b/src/core/wee-url.c index 867b5b920..5ffecb9bb 100644 --- a/src/core/wee-url.c +++ b/src/core/wee-url.c @@ -867,7 +867,7 @@ weeurl_get_mask_value (struct t_url_constant *constants, mask = 0; - items = string_split (string_mask, "+", + items = string_split (string_mask, "+", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1019,7 +1019,7 @@ weeurl_option_map_cb (void *data, } break; case URL_TYPE_LIST: - items = string_split (value, "\n", + items = string_split (value, "\n", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/core/wee-util.c b/src/core/wee-util.c index 1e4c282f9..f4d762a26 100644 --- a/src/core/wee-util.c +++ b/src/core/wee-util.c @@ -206,7 +206,7 @@ util_setrlimit () int num_items, i; long number; - items = string_split (CONFIG_STRING(config_startup_sys_rlimit), ",", + items = string_split (CONFIG_STRING(config_startup_sys_rlimit), ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -937,7 +937,7 @@ util_version_number (const char *version) int num_items, i, version_int[4], index_buf; long number; - items = string_split (version, ".", + items = string_split (version, ".", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/gui/curses/gui-curses-bar-window.c b/src/gui/curses/gui-curses-bar-window.c index 8df7b6019..0684e2775 100644 --- a/src/gui/curses/gui-curses-bar-window.c +++ b/src/gui/curses/gui-curses-bar-window.c @@ -487,7 +487,7 @@ gui_bar_window_draw (struct t_gui_bar_window *bar_window, } } - items = string_split (content, "\n", + items = string_split (content, "\n", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/gui/curses/gui-curses-color.c b/src/gui/curses/gui-curses-color.c index 992f1ba5c..8248f23b4 100644 --- a/src/gui/curses/gui-curses-color.c +++ b/src/gui/curses/gui-curses-color.c @@ -936,6 +936,7 @@ gui_color_buffer_display () _("Nick colors:")); items = string_split (CONFIG_STRING(config_color_chat_nick_colors), ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1345,7 +1346,7 @@ gui_color_palette_new (int number, const char *value) str_alias = NULL; str_rgb = NULL; - items = string_split (value, ";", + items = string_split (value, ";", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/gui/gui-bar-window.c b/src/gui/gui-bar-window.c index 6c0b94edc..630804f44 100644 --- a/src/gui/gui-bar-window.c +++ b/src/gui/gui-bar-window.c @@ -843,6 +843,7 @@ gui_bar_window_content_get_with_filling (struct t_gui_bar_window *bar_window, split_items[i][sub] = string_split ( ptr_content, "\n", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/gui/gui-bar.c b/src/gui/gui-bar.c index 367143007..ca29a5a51 100644 --- a/src/gui/gui-bar.c +++ b/src/gui/gui-bar.c @@ -704,7 +704,7 @@ gui_bar_set_items_array (struct t_gui_bar *bar, const char *items) if (items && items[0]) { - tmp_array = string_split (items, ",", + tmp_array = string_split (items, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -723,6 +723,7 @@ gui_bar_set_items_array (struct t_gui_bar *bar, const char *items) bar->items_array[i] = string_split ( tmp_array[i], "+", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/gui/gui-buffer.c b/src/gui/gui-buffer.c index 518bed40c..562580d7d 100644 --- a/src/gui/gui-buffer.c +++ b/src/gui/gui-buffer.c @@ -1019,7 +1019,7 @@ gui_buffer_match_list (struct t_gui_buffer *buffer, const char *string) match = 0; - buffers = string_split (string, ",", + buffers = string_split (string, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1492,12 +1492,12 @@ gui_buffer_add_highlight_words (struct t_gui_buffer *buffer, if (!list) return; - current_words = string_split (buffer->highlight_words, ",", + current_words = string_split (buffer->highlight_words, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, 0, ¤t_count); - add_words = string_split (words_to_add, ",", + add_words = string_split (words_to_add, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1543,12 +1543,12 @@ gui_buffer_remove_highlight_words (struct t_gui_buffer *buffer, if (!list) return; - current_words = string_split (buffer->highlight_words, ",", + current_words = string_split (buffer->highlight_words, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, 0, ¤t_count); - remove_words = string_split (words_to_remove, ",", + remove_words = string_split (words_to_remove, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1713,7 +1713,7 @@ gui_buffer_set_hotlist_max_level_nicks (struct t_gui_buffer *buffer, if (new_hotlist_max_level_nicks && new_hotlist_max_level_nicks[0]) { - nicks = string_split (new_hotlist_max_level_nicks, ",", + nicks = string_split (new_hotlist_max_level_nicks, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1756,7 +1756,7 @@ gui_buffer_add_hotlist_max_level_nicks (struct t_gui_buffer *buffer, if (!buffer || !nicks_to_add) return; - nicks = string_split (nicks_to_add, ",", + nicks = string_split (nicks_to_add, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1797,7 +1797,7 @@ gui_buffer_remove_hotlist_max_level_nicks (struct t_gui_buffer *buffer, if (!buffer || !nicks_to_remove) return; - nicks = string_split (nicks_to_remove, ",", + nicks = string_split (nicks_to_remove, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/gui/gui-chat.c b/src/gui/gui-chat.c index 0b49fefdd..687e17686 100644 --- a/src/gui/gui-chat.c +++ b/src/gui/gui-chat.c @@ -910,7 +910,7 @@ gui_chat_print_lines_waiting_buffer (FILE *f) if (gui_chat_lines_waiting_buffer) { - lines = string_split (*gui_chat_lines_waiting_buffer, "\n", + lines = string_split (*gui_chat_lines_waiting_buffer, "\n", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/gui/gui-color.c b/src/gui/gui-color.c index f067330aa..3aff0f14d 100644 --- a/src/gui/gui-color.c +++ b/src/gui/gui-color.c @@ -798,7 +798,7 @@ gui_color_decode_ansi_cb (void *data, const char *text) if (!text2) goto end; - items = string_split (text2, ";", + items = string_split (text2, ";", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/gui/gui-completion.c b/src/gui/gui-completion.c index e427c5dbd..a4be51870 100644 --- a/src/gui/gui-completion.c +++ b/src/gui/gui-completion.c @@ -562,6 +562,7 @@ gui_completion_get_matching_template (struct t_gui_completion *completion, { items = string_split (HOOK_COMMAND(hook_command, cplt_templates_static)[i], "|", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/gui/gui-filter.c b/src/gui/gui-filter.c index fee076fd7..d2872b887 100644 --- a/src/gui/gui-filter.c +++ b/src/gui/gui-filter.c @@ -398,6 +398,7 @@ gui_filter_new (int enabled, const char *name, const char *buffer_name, new_filter->buffers = string_split ( new_filter->buffer_name, ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/gui/gui-line.c b/src/gui/gui-line.c index 90fd2d2c1..fe853f279 100644 --- a/src/gui/gui-line.c +++ b/src/gui/gui-line.c @@ -98,7 +98,7 @@ gui_line_tags_alloc (struct t_gui_line_data *line_data, const char *tags) { if (tags) { - line_data->tags_array = string_split_shared (tags, ",", 0, 0, + line_data->tags_array = string_split_shared (tags, ",", NULL, 0, 0, &line_data->tags_count); } else diff --git a/src/plugins/alias/alias-completion.c b/src/plugins/alias/alias-completion.c index 9c4caf3eb..baa041f24 100644 --- a/src/plugins/alias/alias-completion.c +++ b/src/plugins/alias/alias-completion.c @@ -79,7 +79,7 @@ alias_completion_alias_value_cb (const void *pointer, void *data, args = weechat_hook_completion_get_string (completion, "args"); if (args) { - argv = weechat_string_split (args, " ", + argv = weechat_string_split (args, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/alias/alias.c b/src/plugins/alias/alias.c index bf5c97969..24c916a2c 100644 --- a/src/plugins/alias/alias.c +++ b/src/plugins/alias/alias.c @@ -190,7 +190,7 @@ alias_replace_args (const char *alias_args, const char *user_args) const char *start, *pos; int n, m, argc, length_res, args_count, offset; - argv = weechat_string_split (user_args, " ", + argv = weechat_string_split (user_args, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/buflist/buflist-config.c b/src/plugins/buflist/buflist-config.c index 2072211d3..148b0fbd6 100644 --- a/src/plugins/buflist/buflist-config.c +++ b/src/plugins/buflist/buflist-config.c @@ -165,7 +165,7 @@ buflist_config_hook_signals_refresh () BUFLIST_CONFIG_SIGNALS_REFRESH_NICK_PREFIX); } - signals = weechat_string_split (*all_signals, ",", + signals = weechat_string_split (*all_signals, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -257,6 +257,7 @@ buflist_config_change_sort (const void *pointer, void *data, buflist_config_sort_fields = weechat_string_split ( weechat_config_string (buflist_config_look_sort), ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/buflist/buflist-mouse.c b/src/plugins/buflist/buflist-mouse.c index b5aa0e685..7afd2e465 100644 --- a/src/plugins/buflist/buflist-mouse.c +++ b/src/plugins/buflist/buflist-mouse.c @@ -87,7 +87,7 @@ buflist_focus_cb (const void *pointer, void *data, struct t_hashtable *info) end: /* get list of keys */ keys = weechat_hdata_get_string (buflist_hdata_buffer, "var_keys"); - list_keys = weechat_string_split (keys, ",", + list_keys = weechat_string_split (keys, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/exec/exec-buffer.c b/src/plugins/exec/exec-buffer.c index 230f46592..4c1af8794 100644 --- a/src/plugins/exec/exec-buffer.c +++ b/src/plugins/exec/exec-buffer.c @@ -53,12 +53,12 @@ exec_buffer_input_cb (const void *pointer, void *data, return WEECHAT_RC_OK; } - argv = weechat_string_split (input_data, " ", + argv = weechat_string_split (input_data, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, 0, &argc); - argv_eol = weechat_string_split (input_data, " ", + argv_eol = weechat_string_split (input_data, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS diff --git a/src/plugins/exec/exec-config.c b/src/plugins/exec/exec-config.c index c8fb0ea97..227155af1 100644 --- a/src/plugins/exec/exec-config.c +++ b/src/plugins/exec/exec-config.c @@ -64,6 +64,7 @@ exec_config_change_command_default_options (const void *pointer, void *data, exec_config_cmd_options = weechat_string_split ( weechat_config_string (exec_config_command_default_options), " ", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/fset/fset-buffer.c b/src/plugins/fset/fset-buffer.c index 6820148ca..a3230eabe 100644 --- a/src/plugins/fset/fset-buffer.c +++ b/src/plugins/fset/fset-buffer.c @@ -782,7 +782,7 @@ fset_buffer_display_option_eval (struct t_fset_option *fset_option) NULL); if (line) { - lines = weechat_string_split (line, "\r\n", + lines = weechat_string_split (line, "\r\n", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/fset/fset-command.c b/src/plugins/fset/fset-command.c index 4b510a8a7..776664f76 100644 --- a/src/plugins/fset/fset-command.c +++ b/src/plugins/fset/fset-command.c @@ -469,7 +469,7 @@ fset_command_run_set_cb (const void *pointer, void *data, rc = WEECHAT_RC_OK; - argv = weechat_string_split (command, " ", + argv = weechat_string_split (command, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/fset/fset-completion.c b/src/plugins/fset/fset-completion.c index 25b2eb6ec..2be16484b 100644 --- a/src/plugins/fset/fset-completion.c +++ b/src/plugins/fset/fset-completion.c @@ -82,6 +82,7 @@ fset_completion_option_cb (const void *pointer, void *data, words = weechat_string_split ( weechat_config_option_get_string (ptr_option, "name"), "_", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/fset/fset-config.c b/src/plugins/fset/fset-config.c index 3a4b1bb18..66e8f16b9 100644 --- a/src/plugins/fset/fset-config.c +++ b/src/plugins/fset/fset-config.c @@ -154,6 +154,7 @@ fset_config_change_sort_cb (const void *pointer, void *data, fset_config_sort_fields = weechat_string_split ( weechat_config_string (fset_config_look_sort), ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/irc/irc-color.c b/src/plugins/irc/irc-color.c index 366ebe40b..6def56b72 100644 --- a/src/plugins/irc/irc-color.c +++ b/src/plugins/irc/irc-color.c @@ -511,7 +511,7 @@ irc_color_decode_ansi_cb (void *data, const char *text) if (!text2) goto end; - items = weechat_string_split (text2, ";", + items = weechat_string_split (text2, ";", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/irc/irc-command.c b/src/plugins/irc/irc-command.c index 41a10a278..531196138 100644 --- a/src/plugins/irc/irc-command.c +++ b/src/plugins/irc/irc-command.c @@ -419,7 +419,7 @@ irc_command_exec_all_channels (struct t_irc_server *server, return; channels = (str_channels && str_channels[0]) ? - weechat_string_split (str_channels, ",", + weechat_string_split (str_channels, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -678,7 +678,7 @@ irc_command_exec_all_servers (int inclusive, const char *str_servers, const char return; servers = (str_servers && str_servers[0]) ? - weechat_string_split (str_servers, ",", + weechat_string_split (str_servers, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1108,12 +1108,12 @@ irc_command_run_away (const void *pointer, void *data, int argc; char **argv, **argv_eol; - argv = weechat_string_split (command, " ", + argv = weechat_string_split (command, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, 0, &argc); - argv_eol = weechat_string_split (command, " ", + argv_eol = weechat_string_split (command, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS @@ -1586,7 +1586,7 @@ IRC_COMMAND_CALLBACK(ctcp) IRC_COMMAND_CHECK_SERVER("ctcp", 1); - targets = weechat_string_split (argv[arg_target], ",", + targets = weechat_string_split (argv[arg_target], ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1696,7 +1696,7 @@ IRC_COMMAND_CALLBACK(cycle) { channel_name = argv[1]; pos_args = argv_eol[2]; - channels = weechat_string_split (channel_name, ",", + channels = weechat_string_split (channel_name, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -2548,7 +2548,7 @@ irc_command_join_server (struct t_irc_server *server, const char *arguments, pos_keys++; } if (pos_keys[0]) - keys = weechat_string_split (pos_keys, ",", + keys = weechat_string_split (pos_keys, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -2559,7 +2559,7 @@ irc_command_join_server (struct t_irc_server *server, const char *arguments, if (new_args) { - channels = weechat_string_split (new_args, ",", + channels = weechat_string_split (new_args, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -3311,7 +3311,7 @@ IRC_COMMAND_CALLBACK(msg) IRC_COMMAND_CHECK_SERVER("msg", 1); - targets = weechat_string_split (argv[arg_target], ",", + targets = weechat_string_split (argv[arg_target], ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -4110,7 +4110,7 @@ IRC_COMMAND_CALLBACK(query) IRC_COMMAND_CHECK_SERVER("query", 1); - nicks = weechat_string_split (argv[arg_nick], ",", + nicks = weechat_string_split (argv[arg_nick], ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/irc/irc-config.c b/src/plugins/irc/irc-config.c index f133eb37f..119d2b3c5 100644 --- a/src/plugins/irc/irc-config.c +++ b/src/plugins/irc/irc-config.c @@ -360,6 +360,7 @@ irc_config_change_look_display_join_message (const void *pointer, void *data, items = weechat_string_split ( weechat_config_string (irc_config_look_display_join_message), ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -589,6 +590,7 @@ irc_config_change_look_nicks_hide_password (const void *pointer, void *data, irc_config_nicks_hide_password = weechat_string_split ( nicks_hide_password, ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -721,6 +723,7 @@ irc_config_change_color_mirc_remap (const void *pointer, void *data, items = weechat_string_split ( weechat_config_string (irc_config_color_mirc_remap), ";", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -773,6 +776,7 @@ irc_config_change_color_nick_prefixes (const void *pointer, void *data, items = weechat_string_split ( weechat_config_string (irc_config_color_nick_prefixes), ";", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1043,7 +1047,7 @@ irc_config_check_autojoin (const char *autojoin) if (strstr (string, ", ") || strstr (string, " ,")) goto end; - items = weechat_string_split (string, " ", + items = weechat_string_split (string, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1051,14 +1055,14 @@ irc_config_check_autojoin (const char *autojoin) if (!items || (num_items < 1) || (num_items > 2)) goto end; - channels = weechat_string_split (items[0], ",", + channels = weechat_string_split (items[0], ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, 0, &num_channels); if (num_items == 2) - keys = weechat_string_split (items[1], ",", + keys = weechat_string_split (items[1], ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1512,6 +1516,7 @@ irc_config_ignore_read_cb (const void *pointer, void *data, argv = weechat_string_split ( value, ";", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1520,6 +1525,7 @@ irc_config_ignore_read_cb (const void *pointer, void *data, argv_eol = weechat_string_split ( value, ";", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS diff --git a/src/plugins/irc/irc-info.c b/src/plugins/irc/irc-info.c index d63b700f3..51eed3b61 100644 --- a/src/plugins/irc/irc-info.c +++ b/src/plugins/irc/irc-info.c @@ -526,7 +526,7 @@ irc_info_infolist_irc_channel_cb (const void *pointer, void *data, ptr_server = NULL; ptr_channel = NULL; - argv = weechat_string_split (arguments, ",", + argv = weechat_string_split (arguments, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -618,7 +618,7 @@ irc_info_infolist_irc_modelist_cb (const void *pointer, void *data, ptr_server = NULL; ptr_channel = NULL; - argv = weechat_string_split (arguments, ",", + argv = weechat_string_split (arguments, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -719,7 +719,7 @@ irc_info_infolist_irc_modelist_item_cb (const void *pointer, void *data, ptr_server = NULL; ptr_channel = NULL; - argv = weechat_string_split (arguments, ",", + argv = weechat_string_split (arguments, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -831,7 +831,7 @@ irc_info_infolist_irc_nick_cb (const void *pointer, void *data, ptr_server = NULL; ptr_channel = NULL; - argv = weechat_string_split (arguments, ",", + argv = weechat_string_split (arguments, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/irc/irc-input.c b/src/plugins/irc/irc-input.c index 6e833c963..53dedba4a 100644 --- a/src/plugins/irc/irc-input.c +++ b/src/plugins/irc/irc-input.c @@ -364,6 +364,7 @@ irc_input_send_cb (const void *pointer, void *data, list_options = weechat_string_split ( options, ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/irc/irc-message.c b/src/plugins/irc/irc-message.c index 45d6052ab..8899bee53 100644 --- a/src/plugins/irc/irc-message.c +++ b/src/plugins/irc/irc-message.c @@ -779,7 +779,7 @@ irc_message_split_join (struct t_hashtable *hashtable, str = weechat_strndup (arguments, pos - arguments); if (!str) return 0; - channels = weechat_string_split (str, ",", + channels = weechat_string_split (str, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -790,7 +790,7 @@ irc_message_split_join (struct t_hashtable *hashtable, pos++; } if (pos[0]) - keys = weechat_string_split (pos, ",", + keys = weechat_string_split (pos, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -798,7 +798,7 @@ irc_message_split_join (struct t_hashtable *hashtable, } else { - channels = weechat_string_split (arguments, ",", + channels = weechat_string_split (arguments, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1054,12 +1054,12 @@ irc_message_split (struct t_irc_server *server, const char *message) } } - argv = weechat_string_split (message, " ", + argv = weechat_string_split (message, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, 0, &argc); - argv_eol = weechat_string_split (message, " ", + argv_eol = weechat_string_split (message, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS | WEECHAT_STRING_SPLIT_KEEP_EOL, diff --git a/src/plugins/irc/irc-mode.c b/src/plugins/irc/irc-mode.c index 3648cffc5..d6c749168 100644 --- a/src/plugins/irc/irc-mode.c +++ b/src/plugins/irc/irc-mode.c @@ -47,7 +47,7 @@ irc_mode_get_arguments (const char *arguments) if (!arguments || !arguments[0]) return strdup (""); - argv = weechat_string_split (arguments, " ", + argv = weechat_string_split (arguments, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -173,7 +173,7 @@ irc_mode_channel_update (struct t_irc_server *server, pos_args++; while (pos_args[0] == ' ') pos_args++; - argv = weechat_string_split (pos_args, " ", + argv = weechat_string_split (pos_args, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -386,7 +386,7 @@ irc_mode_channel_set (struct t_irc_server *server, argv = NULL; if (modes_arguments) { - argv = weechat_string_split (modes_arguments, " ", + argv = weechat_string_split (modes_arguments, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/irc/irc-notify.c b/src/plugins/irc/irc-notify.c index cdbbe722f..3c913063d 100644 --- a/src/plugins/irc/irc-notify.c +++ b/src/plugins/irc/irc-notify.c @@ -373,7 +373,7 @@ irc_notify_new_for_server (struct t_irc_server *server) if (!notify || !notify[0]) return; - items = weechat_string_split (notify, ",", + items = weechat_string_split (notify, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -395,6 +395,7 @@ irc_notify_new_for_server (struct t_irc_server *server) params = weechat_string_split ( pos_params, "/", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -840,6 +841,7 @@ irc_notify_hsignal_cb (const void *pointer, void *data, const char *signal, messages = weechat_string_split ( output, "\n", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -850,6 +852,7 @@ irc_notify_hsignal_cb (const void *pointer, void *data, const char *signal, nicks_sent = weechat_string_split ( ptr_args, " ", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -883,6 +886,7 @@ irc_notify_hsignal_cb (const void *pointer, void *data, const char *signal, nicks_recv = weechat_string_split ( pos, " ", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -952,6 +956,7 @@ irc_notify_hsignal_cb (const void *pointer, void *data, const char *signal, messages = weechat_string_split ( output, "\n", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/irc/irc-protocol.c b/src/plugins/irc/irc-protocol.c index 8a8aae461..c1790e649 100644 --- a/src/plugins/irc/irc-protocol.c +++ b/src/plugins/irc/irc-protocol.c @@ -398,6 +398,7 @@ irc_protocol_cap_sync (struct t_irc_server *server, int sasl) caps_requested = weechat_string_split ( cap_option, ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -515,6 +516,7 @@ IRC_PROTOCOL_CALLBACK(cap) caps_supported = weechat_string_split ( ptr_caps, " ", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -597,6 +599,7 @@ IRC_PROTOCOL_CALLBACK(cap) caps_enabled = weechat_string_split ( ptr_caps, " ", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -658,6 +661,7 @@ IRC_PROTOCOL_CALLBACK(cap) caps_supported = weechat_string_split ( ptr_caps, " ", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -770,6 +774,7 @@ IRC_PROTOCOL_CALLBACK(cap) caps_added = weechat_string_split ( ptr_caps, " ", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -816,6 +821,7 @@ IRC_PROTOCOL_CALLBACK(cap) caps_removed = weechat_string_split ( ptr_caps, " ", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -5891,6 +5897,7 @@ IRC_PROTOCOL_CALLBACK(730) nicks = weechat_string_split ((argv_eol[3][0] == ':') ? argv_eol[3] + 1 : argv_eol[3], ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -5934,6 +5941,7 @@ IRC_PROTOCOL_CALLBACK(731) nicks = weechat_string_split ((argv_eol[3][0] == ':') ? argv_eol[3] + 1 : argv_eol[3], ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -6178,7 +6186,7 @@ irc_protocol_get_message_tags (const char *tags) if (!hashtable) return NULL; - items = weechat_string_split (tags, ";", + items = weechat_string_split (tags, ";", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -6596,7 +6604,7 @@ irc_protocol_recv_command (struct t_irc_server *server, } else message_colors_decoded = NULL; - argv = weechat_string_split (message_colors_decoded, " ", + argv = weechat_string_split (message_colors_decoded, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -6606,8 +6614,8 @@ irc_protocol_recv_command (struct t_irc_server *server, | WEECHAT_STRING_SPLIT_KEEP_EOL; if (keep_trailing_spaces) flags |= WEECHAT_STRING_SPLIT_STRIP_RIGHT; - argv_eol = weechat_string_split (message_colors_decoded, " ", flags, - 0, NULL); + argv_eol = weechat_string_split (message_colors_decoded, " ", NULL, + flags, 0, NULL); return_code = (int) (cmd_recv_func) (server, date, nick, address_color, diff --git a/src/plugins/irc/irc-redirect.c b/src/plugins/irc/irc-redirect.c index 8ace5a4c0..a1081ea3f 100644 --- a/src/plugins/irc/irc-redirect.c +++ b/src/plugins/irc/irc-redirect.c @@ -422,25 +422,25 @@ irc_redirect_new_with_commands (struct t_irc_server *server, items[i] = NULL; } if (cmd_start) - items[0] = weechat_string_split (cmd_start, ",", + items[0] = weechat_string_split (cmd_start, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, 0, &num_items[0]); if (cmd_stop) - items[1] = weechat_string_split (cmd_stop, ",", + items[1] = weechat_string_split (cmd_stop, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, 0, &num_items[1]); if (cmd_extra) - items[2] = weechat_string_split (cmd_extra, ",", + items[2] = weechat_string_split (cmd_extra, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, 0, &num_items[2]); if (cmd_filter) - items[3] = weechat_string_split (cmd_filter, ",", + items[3] = weechat_string_split (cmd_filter, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -812,6 +812,7 @@ irc_redirect_message (struct t_irc_server *server, const char *message, arguments_argv = weechat_string_split ( arguments, " ", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/irc/irc-server.c b/src/plugins/irc/irc-server.c index 03fd58093..a2bec8b39 100644 --- a/src/plugins/irc/irc-server.c +++ b/src/plugins/irc/irc-server.c @@ -425,7 +425,7 @@ irc_server_eval_fingerprint (struct t_irc_server *server) } /* split fingerprint */ - fingerprints = weechat_string_split (fingerprint_eval, ",", + fingerprints = weechat_string_split (fingerprint_eval, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -616,6 +616,7 @@ irc_server_set_addresses (struct t_irc_server *server, const char *addresses) server->addresses_array = weechat_string_split ( addresses_eval, ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -716,6 +717,7 @@ irc_server_set_nicks (struct t_irc_server *server, const char *nicks) server->nicks_array = weechat_string_split ( (nicks2) ? nicks2 : IRC_SERVER_DEFAULT_NICKS, ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -2683,7 +2685,7 @@ irc_server_sendf (struct t_irc_server *server, int flags, const char *tags, } rc = 1; - items = weechat_string_split (vbuffer, "\n", + items = weechat_string_split (vbuffer, "\n", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -4284,7 +4286,7 @@ irc_server_check_certificate_fingerprint (struct t_irc_server *server, } /* split good_fingerprints */ - fingerprints = weechat_string_split (good_fingerprints, ",", + fingerprints = weechat_string_split (good_fingerprints, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -5210,6 +5212,7 @@ irc_server_autojoin_create_buffers (struct t_irc_server *server) channels = weechat_string_split ( autojoin2, ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/irc/irc-upgrade.c b/src/plugins/irc/irc-upgrade.c index 4276d84fe..0d2ca9883 100644 --- a/src/plugins/irc/irc-upgrade.c +++ b/src/plugins/irc/irc-upgrade.c @@ -555,6 +555,7 @@ irc_upgrade_read_cb (const void *pointer, void *data, items = weechat_string_split ( str, ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -617,6 +618,7 @@ irc_upgrade_read_cb (const void *pointer, void *data, nicks = weechat_string_split ( str, ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/plugin-api-info.c b/src/plugins/plugin-api-info.c index f92d0afa9..dfab31033 100644 --- a/src/plugins/plugin-api-info.c +++ b/src/plugins/plugin-api-info.c @@ -684,7 +684,7 @@ plugin_api_info_totp_generate_cb (const void *pointer, void *data, if (!arguments || !arguments[0]) goto error; - argv = string_split (arguments, ",", + argv = string_split (arguments, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -756,7 +756,7 @@ plugin_api_info_totp_validate_cb (const void *pointer, void *data, if (!arguments || !arguments[0]) goto error; - argv = string_split (arguments, ",", + argv = string_split (arguments, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/plugin-script-api.c b/src/plugins/plugin-script-api.c index d07ac85ff..faf3280e4 100644 --- a/src/plugins/plugin-script-api.c +++ b/src/plugins/plugin-script-api.c @@ -64,7 +64,7 @@ plugin_script_api_string_match_list (struct t_weechat_plugin *weechat_plugin, int match; list_masks = (masks && masks[0]) ? - weechat_string_split (masks, ",", + weechat_string_split (masks, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/plugin-script.c b/src/plugins/plugin-script.c index 8dff7acca..c07a43b83 100644 --- a/src/plugins/plugin-script.c +++ b/src/plugins/plugin-script.c @@ -1251,7 +1251,7 @@ plugin_script_action_install (struct t_weechat_plugin *weechat_plugin, } } - argv = weechat_string_split (ptr_list, ",", + argv = weechat_string_split (ptr_list, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1400,7 +1400,7 @@ plugin_script_action_remove (struct t_weechat_plugin *weechat_plugin, ptr_list += 3; } - argv = weechat_string_split (ptr_list, ",", + argv = weechat_string_split (ptr_list, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1474,7 +1474,7 @@ plugin_script_action_autoload (struct t_weechat_plugin *weechat_plugin, } } - argv = weechat_string_split (ptr_list, ",", + argv = weechat_string_split (ptr_list, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/plugin.c b/src/plugins/plugin.c index dadfdd2a3..de669e8fd 100644 --- a/src/plugins/plugin.c +++ b/src/plugins/plugin.c @@ -1007,6 +1007,7 @@ plugin_auto_load (char *force_plugin_autoload, plugin_autoload_array = string_split ( ptr_plugin_autoload, ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/python/weechat-python.c b/src/plugins/python/weechat-python.c index f36899dce..34ad5f15b 100644 --- a/src/plugins/python/weechat-python.c +++ b/src/plugins/python/weechat-python.c @@ -155,7 +155,7 @@ weechat_python_get_python2_bin () if (dir_separator && path) { - paths = weechat_string_split (path, ":", + paths = weechat_string_split (path, ":", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/relay/irc/relay-irc.c b/src/plugins/relay/irc/relay-irc.c index e54e52403..632fbabb6 100644 --- a/src/plugins/relay/irc/relay-irc.c +++ b/src/plugins/relay/irc/relay-irc.c @@ -337,7 +337,7 @@ relay_irc_tag_relay_client_id (const char *tags) if (tags && tags[0]) { - argv = weechat_string_split (tags, ",", + argv = weechat_string_split (tags, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -565,7 +565,7 @@ relay_irc_hsignal_irc_redir_cb (const void *pointer, void *data, if (!output) return WEECHAT_RC_OK; - messages = weechat_string_split (output, "\n", + messages = weechat_string_split (output, "\n", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1359,6 +1359,7 @@ relay_irc_recv (struct t_relay_client *client, const char *data) irc_argv = weechat_string_split ( irc_args, " ", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1367,6 +1368,7 @@ relay_irc_recv (struct t_relay_client *client, const char *data) irc_argv_eol = weechat_string_split ( irc_args, " ", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS diff --git a/src/plugins/relay/relay-client.c b/src/plugins/relay/relay-client.c index 8ecc8777e..2d8272a8b 100644 --- a/src/plugins/relay/relay-client.c +++ b/src/plugins/relay/relay-client.c @@ -339,7 +339,7 @@ relay_client_recv_text (struct t_relay_client *client, const char *data) pos[0] = '\0'; - lines = weechat_string_split (client->partial_message, "\n", + lines = weechat_string_split (client->partial_message, "\n", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/relay/relay-config.c b/src/plugins/relay/relay-config.c index 7aeabd136..6cd92344e 100644 --- a/src/plugins/relay/relay-config.c +++ b/src/plugins/relay/relay-config.c @@ -411,7 +411,7 @@ relay_config_check_irc_backlog_tags (const void *pointer, void *data, return rc; /* split tags and check them */ - tags = weechat_string_split (value, ",", + tags = weechat_string_split (value, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -462,6 +462,7 @@ relay_config_change_irc_backlog_tags (const void *pointer, void *data, items = weechat_string_split ( weechat_config_string (relay_config_irc_backlog_tags), ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/relay/relay-info.c b/src/plugins/relay/relay-info.c index 3b33d88c1..b2227e131 100644 --- a/src/plugins/relay/relay-info.c +++ b/src/plugins/relay/relay-info.c @@ -53,7 +53,7 @@ relay_info_info_relay_client_count_cb (const void *pointer, void *data, protocol = -1; status = -1; - items = weechat_string_split (arguments, ",", + items = weechat_string_split (arguments, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/relay/weechat/relay-weechat-msg.c b/src/plugins/relay/weechat/relay-weechat-msg.c index 42ce0a561..10e6e0fa8 100644 --- a/src/plugins/relay/weechat/relay-weechat-msg.c +++ b/src/plugins/relay/weechat/relay-weechat-msg.c @@ -583,7 +583,7 @@ relay_weechat_msg_add_hdata (struct t_relay_weechat_msg *msg, goto end; /* split path */ - list_path = weechat_string_split (pos + 1, "/", + list_path = weechat_string_split (pos + 1, "/", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -653,7 +653,7 @@ relay_weechat_msg_add_hdata (struct t_relay_weechat_msg *msg, /* split keys */ if (!keys) keys = weechat_hdata_get_string (ptr_hdata, "var_keys"); - list_keys = weechat_string_split (keys, ",", + list_keys = weechat_string_split (keys, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -793,6 +793,7 @@ relay_weechat_msg_add_infolist (struct t_relay_weechat_msg *msg, list_fields = weechat_string_split ( fields, ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/relay/weechat/relay-weechat-protocol.c b/src/plugins/relay/weechat/relay-weechat-protocol.c index d007d6396..8d50c5d17 100644 --- a/src/plugins/relay/weechat/relay-weechat-protocol.c +++ b/src/plugins/relay/weechat/relay-weechat-protocol.c @@ -1030,18 +1030,21 @@ RELAY_WEECHAT_PROTOCOL_CALLBACK(sync) RELAY_WEECHAT_PROTOCOL_MIN_ARGS(0); - buffers = weechat_string_split ((argc > 0) ? argv[0] : "*", ",", + buffers = weechat_string_split ((argc > 0) ? argv[0] : "*", + ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, - 0, &num_buffers); + 0, + &num_buffers); if (buffers) { add_flags = RELAY_WEECHAT_PROTOCOL_SYNC_ALL; if (argc > 1) { add_flags = 0; - flags = weechat_string_split (argv[1], ",", + flags = weechat_string_split (argv[1], ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1116,18 +1119,21 @@ RELAY_WEECHAT_PROTOCOL_CALLBACK(desync) RELAY_WEECHAT_PROTOCOL_MIN_ARGS(0); - buffers = weechat_string_split ((argc > 0) ? argv[0] : "*", ",", + buffers = weechat_string_split ((argc > 0) ? argv[0] : "*", + ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, - 0, &num_buffers); + 0, + &num_buffers); if (buffers) { sub_flags = RELAY_WEECHAT_PROTOCOL_SYNC_ALL; if (argc > 1) { sub_flags = 0; - flags = weechat_string_split (argv[1], ",", + flags = weechat_string_split (argv[1], ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1402,12 +1408,12 @@ relay_weechat_protocol_recv (struct t_relay_client *client, const char *data) { pos++; } - argv = weechat_string_split (pos, " ", + argv = weechat_string_split (pos, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, 0, &argc); - argv_eol = weechat_string_split (pos, " ", + argv_eol = weechat_string_split (pos, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS | WEECHAT_STRING_SPLIT_KEEP_EOL, diff --git a/src/plugins/script/script-action.c b/src/plugins/script/script-action.c index c97e58b58..14d313d30 100644 --- a/src/plugins/script/script-action.c +++ b/src/plugins/script/script-action.c @@ -832,7 +832,7 @@ script_action_show_diff_process_cb (const void *pointer, void *data, { if (out) { - lines = weechat_string_split (out, "\n", + lines = weechat_string_split (out, "\n", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -871,7 +871,7 @@ script_action_show_diff_process_cb (const void *pointer, void *data, } else if (err) { - lines = weechat_string_split (err, "\n", + lines = weechat_string_split (err, "\n", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1181,7 +1181,7 @@ script_action_run () script_get_loaded_plugins (); - actions = weechat_string_split (script_actions, "\n", + actions = weechat_string_split (script_actions, "\n", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1217,6 +1217,7 @@ script_action_run () argv = weechat_string_split ( ptr_action, " ", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -1225,6 +1226,7 @@ script_action_run () argv_eol = weechat_string_split ( ptr_action, " ", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS diff --git a/src/plugins/script/script-completion.c b/src/plugins/script/script-completion.c index 7878d7f80..9526c435d 100644 --- a/src/plugins/script/script-completion.c +++ b/src/plugins/script/script-completion.c @@ -261,6 +261,7 @@ script_completion_tags_cb (const void *pointer, void *data, list_tags = weechat_string_split ( ptr_script->tags, ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/script/script-config.c b/src/plugins/script/script-config.c index 2006500f5..88c04a169 100644 --- a/src/plugins/script/script-config.c +++ b/src/plugins/script/script-config.c @@ -114,7 +114,7 @@ script_config_get_diff_command () result[0] = '\0'; if (dir_separator && path) { - paths = weechat_string_split (path, ":", + paths = weechat_string_split (path, ":", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -299,6 +299,7 @@ script_config_hold (const char *name_with_extension) items = weechat_string_split ( weechat_config_string (script_config_scripts_hold), ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -348,6 +349,7 @@ script_config_unhold (const char *name_with_extension) items = weechat_string_split ( weechat_config_string (script_config_scripts_hold), ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/script/script-repo.c b/src/plugins/script/script-repo.c index 42dbd85f4..0c4fe8046 100644 --- a/src/plugins/script/script-repo.c +++ b/src/plugins/script/script-repo.c @@ -943,16 +943,19 @@ script_repo_match_filter (struct t_script_repo *script) if (!script_repo_filter || strcmp (script_repo_filter, "*") == 0) return 1; - words = weechat_string_split (script_repo_filter, " ", + words = weechat_string_split (script_repo_filter, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, 0, &num_words); - tags = weechat_string_split ((script->tags) ? script->tags : "", ",", + tags = weechat_string_split ((script->tags) ? script->tags : "", + ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, - 0, &num_tags); + 0, + &num_tags); if (words) { for (i = 0; i < num_words; i++) diff --git a/src/plugins/spell/spell-bar-item.c b/src/plugins/spell/spell-bar-item.c index c6a1ae885..624bdb919 100644 --- a/src/plugins/spell/spell-bar-item.c +++ b/src/plugins/spell/spell-bar-item.c @@ -101,7 +101,7 @@ spell_bar_item_suggest (const void *pointer, void *data, if (!str_suggest) return NULL; - suggestions = weechat_string_split (pos, "/", + suggestions = weechat_string_split (pos, "/", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -126,6 +126,7 @@ spell_bar_item_suggest (const void *pointer, void *data, suggestions2 = weechat_string_split ( suggestions[i], ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/spell/spell-config.c b/src/plugins/spell/spell-config.c index a677dfc3a..b35ca8be7 100644 --- a/src/plugins/spell/spell-config.c +++ b/src/plugins/spell/spell-config.c @@ -97,6 +97,7 @@ spell_config_change_commands (const void *pointer, void *data, spell_commands_to_check = weechat_string_split ( value, ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/spell/spell-speller.c b/src/plugins/spell/spell-speller.c index 7250da39e..db2f0ecf6 100644 --- a/src/plugins/spell/spell-speller.c +++ b/src/plugins/spell/spell-speller.c @@ -99,7 +99,7 @@ spell_speller_check_dictionaries (const char *dict_list) if (dict_list) { - argv = weechat_string_split (dict_list, ",", + argv = weechat_string_split (dict_list, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -227,7 +227,7 @@ spell_speller_add_dicts_to_hash (struct t_hashtable *hashtable, if (!dict || !dict[0]) return; - dicts = weechat_string_split (dict, ",", + dicts = weechat_string_split (dict, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -383,7 +383,7 @@ spell_speller_buffer_new (struct t_gui_buffer *buffer) buffer_dicts = spell_get_dict (buffer); if (buffer_dicts) { - dicts = weechat_string_split (buffer_dicts, ",", + dicts = weechat_string_split (buffer_dicts, ",", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/trigger/trigger-buffer.c b/src/plugins/trigger/trigger-buffer.c index 523b0fa44..c80424f14 100644 --- a/src/plugins/trigger/trigger-buffer.c +++ b/src/plugins/trigger/trigger-buffer.c @@ -91,6 +91,7 @@ trigger_buffer_set_filter (const char *filter) trigger_buffer_filters = weechat_string_split ( filter, ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/trigger/trigger-callback.c b/src/plugins/trigger/trigger-callback.c index 711dd3647..6a67c3501 100644 --- a/src/plugins/trigger/trigger-callback.c +++ b/src/plugins/trigger/trigger-callback.c @@ -736,6 +736,7 @@ trigger_callback_modifier_cb (const void *pointer, void *data, tags = weechat_string_split ( pos2, ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -824,11 +825,14 @@ trigger_callback_line_cb (const void *pointer, void *data, weechat_hashtable_set (pointers, "buffer", buffer); ptr_value = weechat_hashtable_get (line, "tags"); - tags = weechat_string_split ((ptr_value) ? ptr_value : "", ",", + tags = weechat_string_split ((ptr_value) ? ptr_value : "", + ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, - 0, &num_tags); + 0, + &num_tags); /* build string with tags and commas around: ",tag1,tag2,tag3," */ length = 1 + strlen ((ptr_value) ? ptr_value : "") + 1 + 1; diff --git a/src/plugins/trigger/trigger-command.c b/src/plugins/trigger/trigger-command.c index c6db62a26..0dd2aa34d 100644 --- a/src/plugins/trigger/trigger-command.c +++ b/src/plugins/trigger/trigger-command.c @@ -682,11 +682,14 @@ trigger_command_trigger (const void *pointer, void *data, goto end; } } - items = weechat_string_split (trigger_hook_default_rc[type], ",", + items = weechat_string_split (trigger_hook_default_rc[type], + ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, - 0, &num_items); + 0, + &num_items); snprintf (input, sizeof (input), "/trigger add name %s \"%s\" \"%s\" \"%s\" \"%s\"%s%s%s", trigger_hook_type_string[type], diff --git a/src/plugins/trigger/trigger-completion.c b/src/plugins/trigger/trigger-completion.c index c3bad9fef..c1aa6462f 100644 --- a/src/plugins/trigger/trigger-completion.c +++ b/src/plugins/trigger/trigger-completion.c @@ -138,7 +138,7 @@ trigger_completion_option_value_cb (const void *pointer, void *data, if (!args) return WEECHAT_RC_OK; - argv = weechat_string_split (args, " ", + argv = weechat_string_split (args, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -277,7 +277,7 @@ trigger_completion_add_default_for_hook (struct t_gui_completion *completion, if (!args) return; - argv = weechat_string_split (args, " ", + argv = weechat_string_split (args, " ", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, @@ -295,6 +295,7 @@ trigger_completion_add_default_for_hook (struct t_gui_completion *completion, items = weechat_string_split ( default_strings[type], split, + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/src/plugins/trigger/trigger.c b/src/plugins/trigger/trigger.c index e5136a780..ea4f903b9 100644 --- a/src/plugins/trigger/trigger.c +++ b/src/plugins/trigger/trigger.c @@ -276,12 +276,14 @@ trigger_hook (struct t_trigger *trigger) argv = weechat_string_split ( weechat_config_string (trigger->options[TRIGGER_OPTION_ARGUMENTS]), ";", + NULL, 0, 0, &argc); argv_eol = weechat_string_split ( weechat_config_string (trigger->options[TRIGGER_OPTION_ARGUMENTS]), ";", + NULL, WEECHAT_STRING_SPLIT_KEEP_EOL, 0, NULL); diff --git a/src/plugins/weechat-plugin.h b/src/plugins/weechat-plugin.h index 008544554..abf329fc6 100644 --- a/src/plugins/weechat-plugin.h +++ b/src/plugins/weechat-plugin.h @@ -67,7 +67,7 @@ struct timeval; * please change the date with current one; for a second change at same * date, increment the 01, otherwise please keep 01. */ -#define WEECHAT_PLUGIN_API_VERSION "20190413-01" +#define WEECHAT_PLUGIN_API_VERSION "20190615-01" /* macros for defining plugin infos */ #define WEECHAT_PLUGIN_NAME(__name) \ @@ -322,7 +322,8 @@ struct t_weechat_plugin const char *text), void *callback_data); char **(*string_split) (const char *string, const char *separators, - int flags, int num_items_max, int *num_items); + const char *strip_items, int flags, + int num_items_max, int *num_items); char **(*string_split_shell) (const char *string, int *num_items); void (*string_free_split) (char **split_string); char *(*string_build_with_split_string) (const char **split_string, @@ -1218,9 +1219,10 @@ extern int weechat_plugin_end (struct t_weechat_plugin *plugin); __reference_char, \ __callback, \ __callback_data) -#define weechat_string_split(__string, __separator, __flags, __max, \ - __num_items) \ - (weechat_plugin->string_split)(__string, __separator, __flags, \ +#define weechat_string_split(__string, __separators, __strip_items, \ + __flags, __max, __num_items) \ + (weechat_plugin->string_split)(__string, __separators, \ + __strip_items, __flags, \ __max, __num_items) #define weechat_string_split_shell(__string, __num_items) \ (weechat_plugin->string_split_shell)(__string, __num_items) diff --git a/src/plugins/xfer/xfer.c b/src/plugins/xfer/xfer.c index 00b0a7a26..c1372f2f3 100644 --- a/src/plugins/xfer/xfer.c +++ b/src/plugins/xfer/xfer.c @@ -541,6 +541,7 @@ xfer_nick_auto_accepted (const char *server, const char *nick) nicks = weechat_string_split ( weechat_config_string (xfer_config_file_auto_accept_nicks), ",", + NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/tests/unit/core/test-core-hook.cpp b/tests/unit/core/test-core-hook.cpp index 8875912ba..572323bc1 100644 --- a/tests/unit/core/test-core-hook.cpp +++ b/tests/unit/core/test-core-hook.cpp @@ -183,7 +183,7 @@ test_modifier_cb (const void *pointer, void *data, (void) modifier; /* split modifier_data, which is: "plugin;name;tags" */ - items = string_split (modifier_data, ";", + items = string_split (modifier_data, ";", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, diff --git a/tests/unit/core/test-core-string.cpp b/tests/unit/core/test-core-string.cpp index 1f8938091..11ec19b4d 100644 --- a/tests/unit/core/test-core-string.cpp +++ b/tests/unit/core/test-core-string.cpp @@ -1011,29 +1011,29 @@ TEST(CoreString, Split) char **argv; int argc, flags; - POINTERS_EQUAL(NULL, string_split (NULL, NULL, 0, 0, NULL)); - POINTERS_EQUAL(NULL, string_split (NULL, "", 0, 0, NULL)); - POINTERS_EQUAL(NULL, string_split ("", NULL, 0, 0, NULL)); - POINTERS_EQUAL(NULL, string_split ("", "", 0, 0, NULL)); + POINTERS_EQUAL(NULL, string_split (NULL, NULL, NULL, 0, 0, NULL)); + POINTERS_EQUAL(NULL, string_split (NULL, "", NULL, 0, 0, NULL)); + POINTERS_EQUAL(NULL, string_split ("", NULL, NULL, 0, 0, NULL)); + POINTERS_EQUAL(NULL, string_split ("", "", NULL, 0, 0, NULL)); flags = WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS; argc = -1; - POINTERS_EQUAL(NULL, string_split (NULL, NULL, flags, 0, &argc)); + POINTERS_EQUAL(NULL, string_split (NULL, NULL, NULL, flags, 0, &argc)); LONGS_EQUAL(0, argc); argc = -1; - POINTERS_EQUAL(NULL, string_split (NULL, "", flags, 0, &argc)); + POINTERS_EQUAL(NULL, string_split (NULL, "", NULL, flags, 0, &argc)); LONGS_EQUAL(0, argc); argc = -1; - POINTERS_EQUAL(NULL, string_split ("", NULL, flags, 0, &argc)); + POINTERS_EQUAL(NULL, string_split ("", NULL, NULL, flags, 0, &argc)); LONGS_EQUAL(0, argc); argc = -1; - POINTERS_EQUAL(NULL, string_split ("", "", flags, 0, &argc)); + POINTERS_EQUAL(NULL, string_split ("", "", NULL, flags, 0, &argc)); LONGS_EQUAL(0, argc); argc = -1; - POINTERS_EQUAL(NULL, string_split (" ", " ", flags, 0, &argc)); + POINTERS_EQUAL(NULL, string_split (" ", " ", NULL, flags, 0, &argc)); LONGS_EQUAL(0, argc); /* free split with NULL */ @@ -1044,7 +1044,7 @@ TEST(CoreString, Split) | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS; argc = -1; - argv = string_split ("abc de fghi", " ", flags, 0, &argc); + argv = string_split ("abc de fghi", " ", NULL, flags, 0, &argc); LONGS_EQUAL(3, argc); CHECK(argv); STRCMP_EQUAL("abc", argv[0]); @@ -1058,7 +1058,7 @@ TEST(CoreString, Split) | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS; argc = -1; - argv = string_split (" abc de fghi ", " ", flags, 0, &argc); + argv = string_split (" abc de fghi ", " ", NULL, flags, 0, &argc); LONGS_EQUAL(3, argc); CHECK(argv); STRCMP_EQUAL("abc", argv[0]); @@ -1072,7 +1072,7 @@ TEST(CoreString, Split) | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS; argc = -1; - argv = string_split (" abc de fghi ", " ", flags, 2, &argc); + argv = string_split (" abc de fghi ", " ", NULL, flags, 2, &argc); LONGS_EQUAL(2, argc); CHECK(argv); STRCMP_EQUAL("abc", argv[0]); @@ -1086,7 +1086,7 @@ TEST(CoreString, Split) | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS | WEECHAT_STRING_SPLIT_KEEP_EOL; argc = -1; - argv = string_split (" abc de fghi ", " ", flags, 0, &argc); + argv = string_split (" abc de fghi ", " ", NULL, flags, 0, &argc); LONGS_EQUAL(3, argc); CHECK(argv); STRCMP_EQUAL("abc de fghi", argv[0]); @@ -1101,7 +1101,7 @@ TEST(CoreString, Split) | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS | WEECHAT_STRING_SPLIT_KEEP_EOL; argc = -1; - argv = string_split (" abc de fghi ", " ", flags, 2, &argc); + argv = string_split (" abc de fghi ", " ", NULL, flags, 2, &argc); LONGS_EQUAL(2, argc); CHECK(argv); STRCMP_EQUAL("abc de fghi", argv[0]); @@ -1114,7 +1114,7 @@ TEST(CoreString, Split) | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS | WEECHAT_STRING_SPLIT_KEEP_EOL; argc = -1; - argv = string_split (" abc de fghi ", " ", flags, 0, &argc); + argv = string_split (" abc de fghi ", " ", NULL, flags, 0, &argc); LONGS_EQUAL(3, argc); CHECK(argv); STRCMP_EQUAL("abc de fghi ", argv[0]); @@ -1128,7 +1128,7 @@ TEST(CoreString, Split) | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS | WEECHAT_STRING_SPLIT_KEEP_EOL; argc = -1; - argv = string_split (" abc de fghi ", " ", flags, 2, &argc); + argv = string_split (" abc de fghi ", " ", NULL, flags, 2, &argc); LONGS_EQUAL(2, argc); CHECK(argv); STRCMP_EQUAL("abc de fghi ", argv[0]); @@ -1141,7 +1141,7 @@ TEST(CoreString, Split) | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS; argc = -1; - argv = string_split ("abc,de,fghi", ",", flags, 0, &argc); + argv = string_split ("abc,de,fghi", ",", NULL, flags, 0, &argc); LONGS_EQUAL(3, argc); CHECK(argv); STRCMP_EQUAL("abc", argv[0]); @@ -1150,12 +1150,64 @@ TEST(CoreString, Split) POINTERS_EQUAL(NULL, argv[3]); string_free_split (argv); + /* + * standard split with comma separator, + * strip_items set to empty string (ignored) + */ + flags = WEECHAT_STRING_SPLIT_STRIP_LEFT + | WEECHAT_STRING_SPLIT_STRIP_RIGHT + | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS; + argc = -1; + argv = string_split (" abc ,, de ,fghi ,,", ",", "", flags, 0, &argc); + LONGS_EQUAL(3, argc); + CHECK(argv); + STRCMP_EQUAL(" abc ", argv[0]); + STRCMP_EQUAL(" de ", argv[1]); + STRCMP_EQUAL("fghi ", argv[2]); + POINTERS_EQUAL(NULL, argv[3]); + string_free_split (argv); + + /* + * standard split with comma separator, + * strip spaces in items (left/right) + */ + flags = WEECHAT_STRING_SPLIT_STRIP_LEFT + | WEECHAT_STRING_SPLIT_STRIP_RIGHT + | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS; + argc = -1; + argv = string_split (" abc ,, de ,fghi ,,", ",", " ", flags, 0, &argc); + LONGS_EQUAL(3, argc); + CHECK(argv); + STRCMP_EQUAL("abc", argv[0]); + STRCMP_EQUAL("de", argv[1]); + STRCMP_EQUAL("fghi", argv[2]); + POINTERS_EQUAL(NULL, argv[3]); + string_free_split (argv); + + /* + * standard split with comma separator, + * strip spaces and parentheses in items (left/right) + */ + flags = WEECHAT_STRING_SPLIT_STRIP_LEFT + | WEECHAT_STRING_SPLIT_STRIP_RIGHT + | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS; + argc = -1; + argv = string_split (" abc ,, (de) ,(f(g)hi) ,,", ",", " ()", + flags, 0, &argc); + LONGS_EQUAL(3, argc); + CHECK(argv); + STRCMP_EQUAL("abc", argv[0]); + STRCMP_EQUAL("de", argv[1]); + STRCMP_EQUAL("f(g)hi", argv[2]); + POINTERS_EQUAL(NULL, argv[3]); + string_free_split (argv); + /* standard split with comma separator and empty item (ignore this item) */ flags = WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS; argc = -1; - argv = string_split ("abc,,fghi", ",", flags, 0, &argc); + argv = string_split ("abc,,fghi", ",", NULL, flags, 0, &argc); LONGS_EQUAL(2, argc); CHECK(argv); STRCMP_EQUAL("abc", argv[0]); @@ -1166,7 +1218,7 @@ TEST(CoreString, Split) /* standard split with comma separtor and empty item (keep this item) */ flags = 0; argc = -1; - argv = string_split ("abc,,fghi", ",", flags, 0, &argc); + argv = string_split ("abc,,fghi", ",", NULL, flags, 0, &argc); LONGS_EQUAL(3, argc); CHECK(argv); STRCMP_EQUAL("abc", argv[0]); @@ -1178,7 +1230,7 @@ TEST(CoreString, Split) /* standard split with comma separtor and empty items (keep them) */ flags = 0; argc = -1; - argv = string_split (",abc,,fghi,", ",", flags, 0, &argc); + argv = string_split (",abc,,fghi,", ",", NULL, flags, 0, &argc); LONGS_EQUAL(5, argc); CHECK(argv); STRCMP_EQUAL("", argv[0]); @@ -1195,7 +1247,7 @@ TEST(CoreString, Split) */ flags = 0; argc = -1; - argv = string_split (",abc,,fghi,", ",", flags, 2, &argc); + argv = string_split (",abc,,fghi,", ",", NULL, flags, 2, &argc); LONGS_EQUAL(2, argc); CHECK(argv); STRCMP_EQUAL("", argv[0]); @@ -1209,7 +1261,7 @@ TEST(CoreString, Split) */ flags = 0; argc = -1; - argv = string_split (",abc,,fghi,", ",", flags, 3, &argc); + argv = string_split (",abc,,fghi,", ",", NULL, flags, 3, &argc); LONGS_EQUAL(3, argc); CHECK(argv); STRCMP_EQUAL("", argv[0]); @@ -1224,7 +1276,7 @@ TEST(CoreString, Split) */ flags = 0; argc = -1; - argv = string_split (",abc,,fghi,", ",", flags, 4, &argc); + argv = string_split (",abc,,fghi,", ",", NULL, flags, 4, &argc); LONGS_EQUAL(4, argc); CHECK(argv); STRCMP_EQUAL("", argv[0]); @@ -1250,15 +1302,19 @@ TEST(CoreString, SplitShared) | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS; - POINTERS_EQUAL(NULL, string_split_shared (NULL, NULL, flags, 0, NULL)); - POINTERS_EQUAL(NULL, string_split_shared (NULL, "", flags, 0, NULL)); - POINTERS_EQUAL(NULL, string_split_shared ("", NULL, flags, 0, NULL)); - POINTERS_EQUAL(NULL, string_split_shared ("", "", flags, 0, NULL)); + POINTERS_EQUAL(NULL, string_split_shared (NULL, NULL, NULL, + flags, 0, NULL)); + POINTERS_EQUAL(NULL, string_split_shared (NULL, "", NULL, + flags, 0, NULL)); + POINTERS_EQUAL(NULL, string_split_shared ("", NULL, NULL, + flags, 0, NULL)); + POINTERS_EQUAL(NULL, string_split_shared ("", "", NULL, + flags, 0, NULL)); flags = WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS; - argv = string_split_shared (" abc de abc ", " ", flags, 0, &argc); + argv = string_split_shared (" abc de abc ", " ", NULL, flags, 0, &argc); LONGS_EQUAL(3, argc); CHECK(argv); STRCMP_EQUAL("abc", argv[0]); @@ -1441,7 +1497,7 @@ TEST(CoreString, SplitBuildWithSplitString) flags = WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT | WEECHAT_STRING_SPLIT_COLLAPSE_SEPS; - argv = string_split (" abc de fghi ", " ", flags, 0, &argc); + argv = string_split (" abc de fghi ", " ", NULL, flags, 0, &argc); str = string_build_with_split_string ((const char **)argv, NULL); STRCMP_EQUAL("abcdefghi", str);