mirror of
https://github.com/weechat/weechat.git
synced 2026-07-04 16:53:14 +02:00
api: return newly allocated string in functions string_tolower and string_toupper
This commit is contained in:
@@ -25,6 +25,7 @@ New features::
|
||||
* core: add signals "buffer_user_input_xxx" and "buffer_user_closing_xxx" for buffers created with `/buffer add` (issue #1848)
|
||||
* core: add identifier in buffer lines (issue #901)
|
||||
* core: add option `unicode` in command `/debug`
|
||||
* api: return newly allocated string in functions string_tolower and string_toupper
|
||||
* api: add function utf8_strncpy
|
||||
* trigger: add regex command "y" to translate chars, set default regex command to "s" (regex replace) (issue #1510)
|
||||
|
||||
|
||||
@@ -20,6 +20,14 @@ https://weechat.org/files/changelog/ChangeLog-devel.html[ChangeLog]
|
||||
[[v3.8]]
|
||||
== Version 3.8 (under dev)
|
||||
|
||||
[[v3.8_api_string_lower_upper]]
|
||||
=== API functions string_tolower and string_toupper
|
||||
|
||||
The functions link:https://weechat.org/doc/plugin/#_string_tolower[string_tolower]
|
||||
and link:https://weechat.org/doc/plugin/#_string_toupper[string_toupper]
|
||||
now return newly allocated string instead of doing the change in place. +
|
||||
The returned string must then be freed after use.
|
||||
|
||||
[[v3.8_trigger_regex_command]]
|
||||
=== Trigger regex command
|
||||
|
||||
|
||||
@@ -616,25 +616,34 @@ This function is not available in scripting API.
|
||||
|
||||
==== string_tolower
|
||||
|
||||
Convert UTF-8 string to lower case.
|
||||
_Updated in 3.8._
|
||||
|
||||
Return a string with uppercase letters converted to lowercase. +
|
||||
This function is locale independent: only letters `A` to `Z` without accents
|
||||
are converted to lowercase. All other chars are kept as-is.
|
||||
|
||||
Prototype:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
void weechat_string_tolower (char *string);
|
||||
char *weechat_string_tolower (const char *string);
|
||||
----
|
||||
|
||||
Arguments:
|
||||
|
||||
* _string_: string to convert
|
||||
|
||||
Return value:
|
||||
|
||||
* string with lowercase letters (must be freed by calling "free" after use)
|
||||
|
||||
C example:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
char str[] = "AbCdé";
|
||||
weechat_string_tolower (str); /* str is now: "abcdé" */
|
||||
char *str = weechat_string_tolower ("ABCD_É"); /* result: "abcd_É" */
|
||||
/* ... */
|
||||
free (str);
|
||||
----
|
||||
|
||||
[NOTE]
|
||||
@@ -642,25 +651,34 @@ This function is not available in scripting API.
|
||||
|
||||
==== string_toupper
|
||||
|
||||
Convert UTF-8 string to upper case.
|
||||
_Updated in 3.8._
|
||||
|
||||
Return a string with lowercase letters converted to uppercase. +
|
||||
This function is locale independent: only letters `a` to `z` without accents
|
||||
are converted to uppercase. All other chars are kept as-is.
|
||||
|
||||
Prototype:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
void weechat_string_toupper (char *string);
|
||||
char *weechat_string_toupper (const char *string);
|
||||
----
|
||||
|
||||
Arguments:
|
||||
|
||||
* _string_: string to convert
|
||||
|
||||
Return value:
|
||||
|
||||
* string with uppercase letters (must be freed by calling "free" after use)
|
||||
|
||||
C example:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
char str[] = "AbCdé";
|
||||
weechat_string_toupper (str); /* str is now: "ABCDé" */
|
||||
char *str = weechat_string_toupper ("abcd_é"); /* result: "ABCD_é" */
|
||||
/* ... */
|
||||
free (str);
|
||||
----
|
||||
|
||||
[NOTE]
|
||||
|
||||
@@ -626,25 +626,36 @@ Cette fonction n'est pas disponible dans l'API script.
|
||||
|
||||
==== string_tolower
|
||||
|
||||
Convertir une chaîne UTF-8 en minuscules.
|
||||
_Mis à jour dans la 3.8._
|
||||
|
||||
Retourner une chaîne avec les lettres majuscules converties en minuscules. +
|
||||
Cette fonction n'est pas dépendante de la locale : seules les lettres `A` à `Z`
|
||||
sans accents sont converties en minuscules. Tous les autres caractères sont
|
||||
gardés tels quels.
|
||||
|
||||
Prototype :
|
||||
|
||||
[source,c]
|
||||
----
|
||||
void weechat_string_tolower (char *string);
|
||||
char *weechat_string_tolower (const char *string);
|
||||
----
|
||||
|
||||
Paramètres :
|
||||
|
||||
* _string_ : chaîne à convertir
|
||||
|
||||
Valeur de retour :
|
||||
|
||||
* chaîne avec les lettres en minuscules (doit être supprimée par un appel à "free"
|
||||
après utilisation)
|
||||
|
||||
Exemple en C :
|
||||
|
||||
[source,c]
|
||||
----
|
||||
char str[] = "AbCdé";
|
||||
weechat_string_tolower (str); /* str vaut maintenant : "abcdé" */
|
||||
char *str = weechat_string_tolower ("ABCD_É"); /* résultat : "abcd_É" */
|
||||
/* ... */
|
||||
free (str);
|
||||
----
|
||||
|
||||
[NOTE]
|
||||
@@ -652,25 +663,36 @@ Cette fonction n'est pas disponible dans l'API script.
|
||||
|
||||
==== string_toupper
|
||||
|
||||
Convertir une chaîne UTF-8 en majuscules.
|
||||
_Mis à jour dans la 3.8._
|
||||
|
||||
Retourner une chaîne avec les lettres minuscules converties en majuscules. +
|
||||
Cette fonction n'est pas dépendante de la locale : seules les lettres `a` à `z`
|
||||
sans accents sont converties en majuscules. Tous les autres caractères sont
|
||||
gardés tels quels.
|
||||
|
||||
Prototype :
|
||||
|
||||
[source,c]
|
||||
----
|
||||
void weechat_string_toupper (char *string);
|
||||
char *weechat_string_toupper (const char *string);
|
||||
----
|
||||
|
||||
Paramètres :
|
||||
|
||||
* _string_ : chaîne à convertir
|
||||
|
||||
Valeur de retour :
|
||||
|
||||
* chaîne avec les lettres en majuscules (doit être supprimée par un appel à "free"
|
||||
après utilisation)
|
||||
|
||||
Exemple en C :
|
||||
|
||||
[source,c]
|
||||
----
|
||||
char str[] = "AbCdé";
|
||||
weechat_string_toupper (str); /* str vaut maintenant : "ABCDé" */
|
||||
char *str = weechat_string_toupper ("abcd_é"); /* résultat : "ABCD_é" */
|
||||
/* ... */
|
||||
free (str);
|
||||
----
|
||||
|
||||
[NOTE]
|
||||
|
||||
@@ -652,25 +652,37 @@ Questa funzione non è disponibile nelle API per lo scripting.
|
||||
|
||||
==== string_tolower
|
||||
|
||||
Converte una stringa UTF-8 in minuscolo.
|
||||
// TRANSLATION MISSING
|
||||
_Updated in 3.8._
|
||||
|
||||
// TRANSLATION MISSING
|
||||
Return a string with uppercase letters converted to lowercase. +
|
||||
This function is locale independent: only letters `A` to `Z` without accents
|
||||
are converted to lowercase. All other chars are kept as-is.
|
||||
|
||||
Prototipo:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
void weechat_string_tolower (char *string);
|
||||
char *weechat_string_tolower (const char *string);
|
||||
----
|
||||
|
||||
Argomenti:
|
||||
|
||||
* _string_: stringa da convertire
|
||||
|
||||
Valore restituito:
|
||||
|
||||
// TRANSLATION MISSING
|
||||
* string with lowercase letters (must be freed by calling "free" after use)
|
||||
|
||||
Esempio in C:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
char str[] = "AbCdé";
|
||||
weechat_string_tolower (str); /* str ora è: "abcdé" */
|
||||
char *str = weechat_string_tolower ("ABCD_É"); /* result: "abcd_É" */
|
||||
/* ... */
|
||||
free (str);
|
||||
----
|
||||
|
||||
[NOTE]
|
||||
@@ -678,25 +690,37 @@ Questa funzione non è disponibile nelle API per lo scripting.
|
||||
|
||||
==== string_toupper
|
||||
|
||||
Converte una stringa UTF-8 in maiuscolo.
|
||||
// TRANSLATION MISSING
|
||||
_Updated in 3.8._
|
||||
|
||||
// TRANSLATION MISSING
|
||||
Return a string with lowercase letters converted to uppercase. +
|
||||
This function is locale independent: only letters `a` to `z` without accents
|
||||
are converted to uppercase. All other chars are kept as-is.
|
||||
|
||||
Prototipo:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
void weechat_string_toupper (char *string);
|
||||
char *weechat_string_toupper (const char *string);
|
||||
----
|
||||
|
||||
Argomenti:
|
||||
|
||||
* _string_: stringa da convertire
|
||||
|
||||
Valore restituito:
|
||||
|
||||
// TRANSLATION MISSING
|
||||
* string with uppercase letters (must be freed by calling "free" after use)
|
||||
|
||||
Esempio in C:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
char str[] = "AbCdé";
|
||||
weechat_string_toupper (str); /* str ora è: "ABCDé" */
|
||||
char *str = weechat_string_toupper ("abcd_é"); /* result: "ABCD_é" */
|
||||
/* ... */
|
||||
free (str);
|
||||
----
|
||||
|
||||
[NOTE]
|
||||
|
||||
@@ -630,25 +630,36 @@ free (str);
|
||||
|
||||
==== string_tolower
|
||||
|
||||
UTF-8 文字列を小文字に変換。
|
||||
_WeeChat バージョン 3.8 で更新。_
|
||||
|
||||
// TRANSLATION MISSING
|
||||
Return a string with uppercase letters converted to lowercase. +
|
||||
This function is locale independent: only letters `A` to `Z` without accents
|
||||
are converted to lowercase. All other chars are kept as-is.
|
||||
|
||||
プロトタイプ:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
void weechat_string_tolower (char *string);
|
||||
char *weechat_string_tolower (const char *string);
|
||||
----
|
||||
|
||||
引数:
|
||||
|
||||
* _string_: 変換元の文字列
|
||||
|
||||
戻り値:
|
||||
|
||||
// TRANSLATION MISSING
|
||||
* string with lowercase letters (must be freed by calling "free" after use)
|
||||
|
||||
C 言語での使用例:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
char str[] = "AbCdé";
|
||||
weechat_string_tolower (str); /* str is now: "abcdé" */
|
||||
char *str = weechat_string_tolower ("ABCD_É"); /* result: "abcd_É" */
|
||||
/* ... */
|
||||
free (str);
|
||||
----
|
||||
|
||||
[NOTE]
|
||||
@@ -656,25 +667,36 @@ weechat_string_tolower (str); /* str is now: "abcdé" */
|
||||
|
||||
==== string_toupper
|
||||
|
||||
UTF-8 文字列を大文字に変換。
|
||||
_WeeChat バージョン 3.8 で更新。_
|
||||
|
||||
// TRANSLATION MISSING
|
||||
Return a string with lowercase letters converted to uppercase. +
|
||||
This function is locale independent: only letters `a` to `z` without accents
|
||||
are converted to uppercase. All other chars are kept as-is.
|
||||
|
||||
プロトタイプ:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
void weechat_string_toupper (char *string);
|
||||
char *weechat_string_toupper (const char *string);
|
||||
----
|
||||
|
||||
引数:
|
||||
|
||||
* _string_: 変換元の文字列
|
||||
|
||||
戻り値:
|
||||
|
||||
// TRANSLATION MISSING
|
||||
* string with uppercase letters (must be freed by calling "free" after use)
|
||||
|
||||
C 言語での使用例:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
char str[] = "AbCdé";
|
||||
weechat_string_toupper (str); /* str is now: "ABCDé" */
|
||||
char *str = weechat_string_toupper ("abcd_é"); /* result: "ABCD_é" */
|
||||
/* ... */
|
||||
free (str);
|
||||
----
|
||||
|
||||
[NOTE]
|
||||
|
||||
@@ -591,25 +591,36 @@ free (str);
|
||||
|
||||
==== string_tolower
|
||||
|
||||
Конвертује UTF-8 стринг у мала слова.
|
||||
_Ажурирано у верзији 3.8._
|
||||
|
||||
// TRANSLATION MISSING
|
||||
Return a string with uppercase letters converted to lowercase. +
|
||||
This function is locale independent: only letters `A` to `Z` without accents
|
||||
are converted to lowercase. All other chars are kept as-is.
|
||||
|
||||
Прототип:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
void weechat_string_tolower (char *string);
|
||||
char *weechat_string_tolower (const char *string);
|
||||
----
|
||||
|
||||
Аргументи:
|
||||
|
||||
* _string_: стринг који се конвертује
|
||||
|
||||
Повратна вредност:
|
||||
|
||||
// TRANSLATION MISSING
|
||||
* string with lowercase letters (must be freed by calling "free" after use)
|
||||
|
||||
C пример:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
char str[] = "AbCdé";
|
||||
weechat_string_tolower (str); /* str је сада: „abcdé” */
|
||||
char *str = weechat_string_tolower ("ABCD_É"); /* result: „abcd_É” */
|
||||
/* ... */
|
||||
free (str);
|
||||
----
|
||||
|
||||
[NOTE]
|
||||
@@ -617,25 +628,36 @@ weechat_string_tolower (str); /* str је сада: „abcdé” */
|
||||
|
||||
==== string_toupper
|
||||
|
||||
Конвертује UTF-8 стринг у велика слова.
|
||||
_Ажурирано у верзији 3.8._
|
||||
|
||||
// TRANSLATION MISSING
|
||||
Return a string with lowercase letters converted to uppercase. +
|
||||
This function is locale independent: only letters `a` to `z` without accents
|
||||
are converted to uppercase. All other chars are kept as-is.
|
||||
|
||||
Прототип:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
void weechat_string_toupper (char *string);
|
||||
char *weechat_string_toupper (const char *string);
|
||||
----
|
||||
|
||||
Аргументи:
|
||||
|
||||
* _string_: стринг који се конвертује
|
||||
|
||||
Повратна вредност:
|
||||
|
||||
// TRANSLATION MISSING
|
||||
* string with uppercase letters (must be freed by calling "free" after use)
|
||||
|
||||
C пример:
|
||||
|
||||
[source,c]
|
||||
----
|
||||
char str[] = "AbCdé";
|
||||
weechat_string_toupper (str); /* str је сада: „ABCDé” */
|
||||
char *str = weechat_string_toupper ("abcd_é"); /* result: „ABCD_é” */
|
||||
/* ... */
|
||||
free (str);
|
||||
----
|
||||
|
||||
[NOTE]
|
||||
|
||||
+2
-42
@@ -342,46 +342,6 @@ end:
|
||||
return (result) ? result : strdup ("");
|
||||
}
|
||||
|
||||
/*
|
||||
* Converts string to lower case.
|
||||
*
|
||||
* Note: result must be freed after use.
|
||||
*/
|
||||
|
||||
char *
|
||||
eval_string_lower (const char *text)
|
||||
{
|
||||
char *tmp;
|
||||
|
||||
tmp = strdup (text);
|
||||
if (!tmp)
|
||||
return strdup ("");
|
||||
|
||||
string_tolower (tmp);
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
/*
|
||||
* Converts string to upper case.
|
||||
*
|
||||
* Note: result must be freed after use.
|
||||
*/
|
||||
|
||||
char *
|
||||
eval_string_upper (const char *text)
|
||||
{
|
||||
char *tmp;
|
||||
|
||||
tmp = strdup (text);
|
||||
if (!tmp)
|
||||
return strdup ("");
|
||||
|
||||
string_toupper (tmp);
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
/*
|
||||
* Hides chars in a string.
|
||||
*
|
||||
@@ -1650,14 +1610,14 @@ eval_replace_vars_cb (void *data, const char *text)
|
||||
/* convert to lower case */
|
||||
if (strncmp (text, "lower:", 6) == 0)
|
||||
{
|
||||
value = eval_string_lower (text + 6);
|
||||
value = string_tolower (text + 6);
|
||||
goto end;
|
||||
}
|
||||
|
||||
/* convert to upper case */
|
||||
if (strncmp (text, "upper:", 6) == 0)
|
||||
{
|
||||
value = eval_string_upper (text + 6);
|
||||
value = string_toupper (text + 6);
|
||||
goto end;
|
||||
}
|
||||
|
||||
|
||||
+48
-14
@@ -308,33 +308,67 @@ string_repeat (const char *string, int count)
|
||||
}
|
||||
|
||||
/*
|
||||
* Converts string to lower case (locale independent).
|
||||
* Converts uppercase letters to lowercase.
|
||||
*
|
||||
* This function is locale independent: only letters 'A' to 'Z' without accents
|
||||
* are converted to lowercase. All other chars are kept as-is.
|
||||
*
|
||||
* Note: result must be freed after use.
|
||||
*/
|
||||
|
||||
void
|
||||
string_tolower (char *string)
|
||||
char *
|
||||
string_tolower (const char *string)
|
||||
{
|
||||
while (string && string[0])
|
||||
char *result, *ptr_result;
|
||||
|
||||
if (!string)
|
||||
return NULL;
|
||||
|
||||
result = strdup (string);
|
||||
if (!result)
|
||||
return NULL;
|
||||
|
||||
ptr_result = result;
|
||||
while (ptr_result && ptr_result[0])
|
||||
{
|
||||
if ((string[0] >= 'A') && (string[0] <= 'Z'))
|
||||
string[0] += ('a' - 'A');
|
||||
string = (char *)utf8_next_char (string);
|
||||
if ((ptr_result[0] >= 'A') && (ptr_result[0] <= 'Z'))
|
||||
ptr_result[0] += ('a' - 'A');
|
||||
ptr_result = (char *)utf8_next_char (ptr_result);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
* Converts string to upper case (locale independent).
|
||||
* Converts lowercase letters to uppercase.
|
||||
*
|
||||
* This function is locale independent: only letters 'a' to 'z' without accents
|
||||
* are converted to uppercase. All other chars are kept as-is.
|
||||
*
|
||||
* Note: result must be freed after use.
|
||||
*/
|
||||
|
||||
void
|
||||
string_toupper (char *string)
|
||||
char *
|
||||
string_toupper (const char *string)
|
||||
{
|
||||
while (string && string[0])
|
||||
char *result, *ptr_result;
|
||||
|
||||
if (!string)
|
||||
return NULL;
|
||||
|
||||
result = strdup (string);
|
||||
if (!result)
|
||||
return NULL;
|
||||
|
||||
ptr_result = result;
|
||||
while (ptr_result && ptr_result[0])
|
||||
{
|
||||
if ((string[0] >= 'a') && (string[0] <= 'z'))
|
||||
string[0] -= ('a' - 'A');
|
||||
string = (char *)utf8_next_char (string);
|
||||
if ((ptr_result[0] >= 'a') && (ptr_result[0] <= 'z'))
|
||||
ptr_result[0] -= ('a' - 'A');
|
||||
ptr_result = (char *)utf8_next_char (ptr_result);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -42,8 +42,8 @@ extern char *string_cut (const char *string, int length, int count_suffix,
|
||||
extern char *string_reverse (const char *string);
|
||||
extern char *string_reverse_screen (const char *string);
|
||||
extern char *string_repeat (const char *string, int count);
|
||||
extern void string_tolower (char *string);
|
||||
extern void string_toupper (char *string);
|
||||
extern char *string_tolower (const char *string);
|
||||
extern char *string_toupper (const char *string);
|
||||
extern int string_strcasecmp (const char *string1, const char *string2);
|
||||
extern int string_strcasecmp_range (const char *string1, const char *string2,
|
||||
int range);
|
||||
|
||||
@@ -1144,6 +1144,7 @@ gui_completion_complete (struct t_gui_completion *completion)
|
||||
int length, word_found_seen, other_completion, partial_completion;
|
||||
int common_prefix_size, index, index2;
|
||||
struct t_gui_completion_word *ptr_completion_word, *ptr_completion_word2;
|
||||
char *word_found_lower;
|
||||
|
||||
length = utf8_strlen (completion->base_word);
|
||||
word_found_seen = 0;
|
||||
@@ -1262,7 +1263,12 @@ gui_completion_complete (struct t_gui_completion *completion)
|
||||
completion->word_found_is_nick = 0;
|
||||
completion->add_space = 0;
|
||||
completion->position = -1;
|
||||
string_tolower (completion->word_found);
|
||||
word_found_lower = string_tolower (completion->word_found);
|
||||
if (word_found_lower)
|
||||
{
|
||||
free (completion->word_found);
|
||||
completion->word_found = word_found_lower;
|
||||
}
|
||||
|
||||
/* alert user of partial completion */
|
||||
if (CONFIG_BOOLEAN(config_completion_partial_completion_alert))
|
||||
|
||||
+1
-2
@@ -182,10 +182,9 @@ gui_nick_get_forced_color (const char *nickname)
|
||||
if (forced_color)
|
||||
return forced_color;
|
||||
|
||||
nick_lower = strdup (nickname);
|
||||
nick_lower = string_tolower (nickname);
|
||||
if (nick_lower)
|
||||
{
|
||||
string_tolower (nick_lower);
|
||||
forced_color = hashtable_get (config_hashtable_nick_color_force,
|
||||
nick_lower);
|
||||
free (nick_lower);
|
||||
|
||||
@@ -399,10 +399,9 @@ irc_channel_create_buffer (struct t_irc_server *server,
|
||||
channel_name_lower = NULL;
|
||||
if (channel_type == IRC_CHANNEL_TYPE_CHANNEL)
|
||||
{
|
||||
channel_name_lower = strdup (channel_name);
|
||||
channel_name_lower = weechat_string_tolower (channel_name);
|
||||
if (channel_name_lower)
|
||||
{
|
||||
weechat_string_tolower (channel_name_lower);
|
||||
manual_join = weechat_hashtable_has_key (server->join_manual,
|
||||
channel_name_lower);
|
||||
noswitch = weechat_hashtable_has_key (server->join_noswitch,
|
||||
|
||||
@@ -2877,10 +2877,9 @@ irc_command_join_server (struct t_irc_server *server, const char *arguments,
|
||||
strcat (new_args, channels[i]);
|
||||
if (manual_join || noswitch)
|
||||
{
|
||||
channel_name = strdup (pos_channel);
|
||||
channel_name = weechat_string_tolower (pos_channel);
|
||||
if (channel_name)
|
||||
{
|
||||
weechat_string_tolower (channel_name);
|
||||
if (manual_join)
|
||||
{
|
||||
weechat_hashtable_set (server->join_manual,
|
||||
|
||||
@@ -6730,15 +6730,12 @@ IRC_PROTOCOL_CALLBACK(470)
|
||||
}
|
||||
}
|
||||
|
||||
old_channel_lower = strdup (params[1]);
|
||||
old_channel_lower = weechat_string_tolower (params[1]);
|
||||
if (old_channel_lower)
|
||||
{
|
||||
weechat_string_tolower (old_channel_lower);
|
||||
new_channel_lower = strdup (params[2]);
|
||||
new_channel_lower = weechat_string_tolower (params[2]);
|
||||
if (new_channel_lower)
|
||||
{
|
||||
weechat_string_tolower (new_channel_lower);
|
||||
|
||||
if (weechat_hashtable_has_key (server->join_manual,
|
||||
old_channel_lower))
|
||||
{
|
||||
@@ -6750,7 +6747,6 @@ IRC_PROTOCOL_CALLBACK(470)
|
||||
weechat_hashtable_remove (server->join_manual,
|
||||
old_channel_lower);
|
||||
}
|
||||
|
||||
if (weechat_hashtable_has_key (server->join_noswitch,
|
||||
old_channel_lower))
|
||||
{
|
||||
@@ -6762,10 +6758,8 @@ IRC_PROTOCOL_CALLBACK(470)
|
||||
weechat_hashtable_remove (server->join_noswitch,
|
||||
old_channel_lower);
|
||||
}
|
||||
|
||||
free (new_channel_lower);
|
||||
}
|
||||
|
||||
free (old_channel_lower);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -297,7 +297,7 @@ logger_get_mask_for_buffer (struct t_gui_buffer *buffer)
|
||||
char *
|
||||
logger_get_mask_expanded (struct t_gui_buffer *buffer, const char *mask)
|
||||
{
|
||||
char *mask2, *mask3, *mask4, *mask5, *mask6, *mask7, *dir_separator;
|
||||
char *mask2, *mask3, *mask4, *mask5, *mask6, *mask7, *mask8, *dir_separator;
|
||||
int length;
|
||||
time_t seconds;
|
||||
struct tm *date_tmp;
|
||||
@@ -308,6 +308,7 @@ logger_get_mask_expanded (struct t_gui_buffer *buffer, const char *mask)
|
||||
mask5 = NULL;
|
||||
mask6 = NULL;
|
||||
mask7 = NULL;
|
||||
mask8 = NULL;
|
||||
|
||||
dir_separator = weechat_info_get ("dir_separator", "");
|
||||
if (!dir_separator)
|
||||
@@ -360,7 +361,9 @@ logger_get_mask_expanded (struct t_gui_buffer *buffer, const char *mask)
|
||||
|
||||
/* convert to lower case? */
|
||||
if (weechat_config_boolean (logger_config_file_name_lower_case))
|
||||
weechat_string_tolower (mask7);
|
||||
mask8 = weechat_string_tolower (mask7);
|
||||
else
|
||||
mask8 = strdup (mask7);
|
||||
|
||||
if (weechat_logger_plugin->debug)
|
||||
{
|
||||
@@ -369,7 +372,7 @@ logger_get_mask_expanded (struct t_gui_buffer *buffer, const char *mask)
|
||||
"decoded mask = \"%s\"",
|
||||
LOGGER_PLUGIN_NAME,
|
||||
weechat_buffer_get_string (buffer, "name"),
|
||||
mask, mask7);
|
||||
mask, mask8);
|
||||
}
|
||||
|
||||
end:
|
||||
@@ -384,8 +387,10 @@ end:
|
||||
free (mask5);
|
||||
if (mask6)
|
||||
free (mask6);
|
||||
if (mask7)
|
||||
free (mask7);
|
||||
|
||||
return mask7;
|
||||
return mask8;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -111,7 +111,7 @@ plugin_config_set (const char *plugin_name, const char *option_name,
|
||||
const char *value)
|
||||
{
|
||||
int length, rc;
|
||||
char *option_full_name;
|
||||
char *option_full_name, *option_full_name_lower;
|
||||
|
||||
rc = WEECHAT_CONFIG_OPTION_SET_ERROR;
|
||||
|
||||
@@ -121,8 +121,12 @@ plugin_config_set (const char *plugin_name, const char *option_name,
|
||||
{
|
||||
snprintf (option_full_name, length, "%s.%s",
|
||||
plugin_name, option_name);
|
||||
string_tolower (option_full_name);
|
||||
rc = plugin_config_set_internal (option_full_name, value);
|
||||
option_full_name_lower = string_tolower (option_full_name);
|
||||
if (option_full_name_lower)
|
||||
{
|
||||
rc = plugin_config_set_internal (option_full_name_lower, value);
|
||||
free (option_full_name_lower);
|
||||
}
|
||||
free (option_full_name);
|
||||
}
|
||||
|
||||
@@ -199,7 +203,7 @@ plugin_config_set_desc (const char *plugin_name, const char *option_name,
|
||||
const char *description)
|
||||
{
|
||||
int length;
|
||||
char *option_full_name;
|
||||
char *option_full_name, *option_full_name_lower;
|
||||
|
||||
length = strlen (plugin_name) + 1 + strlen (option_name) + 1;
|
||||
option_full_name = malloc (length);
|
||||
@@ -207,8 +211,13 @@ plugin_config_set_desc (const char *plugin_name, const char *option_name,
|
||||
{
|
||||
snprintf (option_full_name, length, "%s.%s",
|
||||
plugin_name, option_name);
|
||||
string_tolower (option_full_name);
|
||||
plugin_config_set_desc_internal (option_full_name, description);
|
||||
option_full_name_lower = string_tolower (option_full_name);
|
||||
if (option_full_name_lower)
|
||||
{
|
||||
plugin_config_set_desc_internal (option_full_name_lower,
|
||||
description);
|
||||
free (option_full_name_lower);
|
||||
}
|
||||
free (option_full_name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1330,7 +1330,7 @@ relay_irc_recv (struct t_relay_client *client, const char *data)
|
||||
const char *irc_command, *str_num_params, *isupport, *pos_password;
|
||||
char str_time[128], str_signal[128], str_server_channel[256], *nick;
|
||||
char str_param[128], *str_args, *version, str_command[128], **params;
|
||||
char *pos, *password, *irc_is_channel, *info, *error;
|
||||
char *pos, *password, *irc_is_channel, *info, *error, *str_cmd_lower;
|
||||
long num_params;
|
||||
int i, redirect_msg;
|
||||
|
||||
@@ -1766,11 +1766,15 @@ relay_irc_recv (struct t_relay_client *client, const char *data)
|
||||
redirect_msg = 1;
|
||||
snprintf (str_command, sizeof (str_command),
|
||||
"%s", irc_command);
|
||||
weechat_string_tolower (str_command);
|
||||
weechat_hashtable_set (hash_redirect, "pattern",
|
||||
str_command);
|
||||
weechat_hashtable_set (hash_redirect, "string",
|
||||
params[0]);
|
||||
str_cmd_lower = weechat_string_tolower (str_command);
|
||||
if (str_cmd_lower)
|
||||
{
|
||||
weechat_hashtable_set (hash_redirect, "pattern",
|
||||
str_cmd_lower);
|
||||
weechat_hashtable_set (hash_redirect, "string",
|
||||
params[0]);
|
||||
free (str_cmd_lower);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (weechat_strcasecmp (irc_command, "time") == 0)
|
||||
|
||||
@@ -72,7 +72,7 @@ void
|
||||
relay_websocket_save_header (struct t_relay_client *client,
|
||||
const char *message)
|
||||
{
|
||||
char *pos, *name;
|
||||
char *pos, *name, *name_lower;
|
||||
const char *ptr_value;
|
||||
|
||||
/* ignore the "GET" request */
|
||||
@@ -89,7 +89,12 @@ relay_websocket_save_header (struct t_relay_client *client,
|
||||
name = weechat_strndup (message, pos - message);
|
||||
if (!name)
|
||||
return;
|
||||
weechat_string_tolower (name);
|
||||
name_lower = weechat_string_tolower (name);
|
||||
if (!name_lower)
|
||||
{
|
||||
free (name);
|
||||
return;
|
||||
}
|
||||
|
||||
/* get pointer on header value */
|
||||
ptr_value = pos + 1;
|
||||
@@ -99,9 +104,10 @@ relay_websocket_save_header (struct t_relay_client *client,
|
||||
}
|
||||
|
||||
/* add header in the hashtable */
|
||||
weechat_hashtable_set (client->http_headers, name, ptr_value);
|
||||
weechat_hashtable_set (client->http_headers, name_lower, ptr_value);
|
||||
|
||||
free (name);
|
||||
free (name_lower);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -760,9 +760,8 @@ script_repo_sha512sum_file (const char *filename)
|
||||
return NULL;
|
||||
|
||||
weechat_string_base_encode (16, hash, hash_size, hash_hexa);
|
||||
weechat_string_tolower (hash_hexa);
|
||||
|
||||
return strdup (hash_hexa);
|
||||
return weechat_string_tolower (hash_hexa);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -68,7 +68,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 "20221203-01"
|
||||
#define WEECHAT_PLUGIN_API_VERSION "20221218-01"
|
||||
|
||||
/* macros for defining plugin infos */
|
||||
#define WEECHAT_PLUGIN_NAME(__name) \
|
||||
@@ -287,8 +287,8 @@ struct t_weechat_plugin
|
||||
char *(*strndup) (const char *string, int bytes);
|
||||
char *(*string_cut) (const char *string, int length, int count_suffix,
|
||||
int screen, const char *cut_suffix);
|
||||
void (*string_tolower) (char *string);
|
||||
void (*string_toupper) (char *string);
|
||||
char *(*string_tolower) (const char *string);
|
||||
char *(*string_toupper) (const char *string);
|
||||
int (*strcasecmp) (const char *string1, const char *string2);
|
||||
int (*strcasecmp_range) (const char *string1, const char *string2,
|
||||
int range);
|
||||
|
||||
@@ -188,13 +188,13 @@ TEST(CoreString, ToLower)
|
||||
{
|
||||
char *str;
|
||||
|
||||
str = strdup ("ABC");
|
||||
WEE_TEST_STR(NULL, string_tolower (NULL));
|
||||
|
||||
string_tolower (NULL);
|
||||
string_tolower (str);
|
||||
STRCMP_EQUAL("abc", str);
|
||||
|
||||
free (str);
|
||||
WEE_TEST_STR("", string_tolower (""));
|
||||
WEE_TEST_STR("abcd_É", string_tolower ("ABCD_É"));
|
||||
WEE_TEST_STR("À É Ï Ô Ü Ÿ Æ Œ Ç", string_tolower ("À É Ï Ô Ü Ÿ Æ Œ Ç"));
|
||||
WEE_TEST_STR("€", string_tolower ("€"));
|
||||
WEE_TEST_STR("[⛄]", string_tolower ("[⛄]"));
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -202,17 +202,17 @@ TEST(CoreString, ToLower)
|
||||
* string_toupper
|
||||
*/
|
||||
|
||||
TEST(CoreString, Case)
|
||||
TEST(CoreString, ToUpper)
|
||||
{
|
||||
char *str;
|
||||
|
||||
str = strdup ("abc");
|
||||
WEE_TEST_STR(NULL, string_tolower (NULL));
|
||||
|
||||
string_toupper (NULL);
|
||||
string_toupper (str);
|
||||
STRCMP_EQUAL("ABC", str);
|
||||
|
||||
free (str);
|
||||
WEE_TEST_STR("", string_toupper (""));
|
||||
WEE_TEST_STR("ABCD_é", string_toupper ("abcd_é"));
|
||||
WEE_TEST_STR("à é ï ô ü ÿ æ œ ç", string_toupper ("à é ï ô ü ÿ æ œ ç"));
|
||||
WEE_TEST_STR("€", string_toupper ("€"));
|
||||
WEE_TEST_STR("[⛄]", string_toupper ("[⛄]"));
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user