1
0
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:
Sébastien Helleu
2022-12-18 14:10:10 +01:00
parent eb6cc0bc2a
commit 40339b288a
22 changed files with 281 additions and 150 deletions
+1
View File
@@ -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)
+8
View File
@@ -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
+26 -8
View File
@@ -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]
+30 -8
View File
@@ -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]
+32 -8
View File
@@ -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]
+30 -8
View File
@@ -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]
+30 -8
View File
@@ -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
View File
@@ -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
View File
@@ -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;
}
/*
+2 -2
View File
@@ -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);
+7 -1
View File
@@ -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
View File
@@ -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);
+1 -2
View File
@@ -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,
+1 -2
View File
@@ -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,
+2 -8
View File
@@ -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);
}
}
+9 -4
View File
@@ -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;
}
/*
+15 -6
View File
@@ -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);
}
}
+10 -6
View File
@@ -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)
+9 -3
View File
@@ -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);
}
/*
+1 -2
View File
@@ -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);
}
/*
+3 -3
View File
@@ -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);
+13 -13
View File
@@ -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 ("[⛄]"));
}
/*