diff --git a/src/plugins/irc/irc-color.c b/src/plugins/irc/irc-color.c index 4cbe47629..173c5cd34 100644 --- a/src/plugins/irc/irc-color.c +++ b/src/plugins/irc/irc-color.c @@ -96,8 +96,8 @@ char *irc_color_string_decoded[32]; int irc_color_convert_rgb2term (long rgb) { - char str_color[64], *info_color, *error; - long number; + char str_color[64], *info_color; + int number; if (rgb < 0) return -1; @@ -111,9 +111,7 @@ irc_color_convert_rgb2term (long rgb) return -1; } - error = NULL; - number = strtol (info_color, &error, 10); - if (!error || error[0]) + if (!weechat_util_parse_int (info_color, 10, &number)) { free (info_color); return -1; @@ -121,7 +119,7 @@ irc_color_convert_rgb2term (long rgb) free (info_color); - return (int)number; + return number; } /* @@ -133,8 +131,8 @@ irc_color_convert_rgb2term (long rgb) int irc_color_convert_rgb2irc (long rgb) { - char str_color[64], *error, *info_color; - long number; + char str_color[64], *info_color; + int number; if (rgb < 0) return -1; @@ -151,9 +149,7 @@ irc_color_convert_rgb2irc (long rgb) return -1; } - error = NULL; - number = strtol (info_color, &error, 10); - if (!error || error[0] + if (!weechat_util_parse_int (info_color, 10, &number) || (number < 0) || (number >= IRC_COLOR_TERM2IRC_NUM_COLORS)) { free (info_color); @@ -174,7 +170,7 @@ irc_color_convert_rgb2irc (long rgb) int irc_color_convert_term2irc (int color) { - char str_color[64], *error, *info_color; + char str_color[64], *info_color; long number; snprintf (str_color, sizeof (str_color), "%d", color); @@ -186,9 +182,8 @@ irc_color_convert_term2irc (int color) return -1; } - error = NULL; - number = strtol (info_color, &error, 10); - if (!error || error[0] || (number < 0) || (number > 0xFFFFFF)) + if (!weechat_util_parse_long (info_color, 10, &number) + || (number < 0) || (number > 0xFFFFFF)) { free (info_color); return -1; @@ -211,7 +206,7 @@ irc_color_convert_term2irc (int color) char * irc_color_decode (const char *string, int keep_colors) { - char **out, *error; + char **out; char str_fg[16], str_bg[16], str_color[128], str_key[128], str_to_add[128]; const char *remapped_color; unsigned char *ptr_string; @@ -337,18 +332,14 @@ irc_color_decode (const char *string, int keep_colors) bg = -1; if (str_fg[0]) { - error = NULL; - fg = (int)strtol (str_fg, &error, 10); - if (error && !error[0]) + if (weechat_util_parse_int (str_fg, 10, &fg)) fg %= IRC_NUM_COLORS; else fg = -1; } if (str_bg[0]) { - error = NULL; - bg = (int)strtol (str_bg, &error, 10); - if (error && !error[0]) + if (weechat_util_parse_int (str_bg, 10, &bg)) bg %= IRC_NUM_COLORS; else bg = -1; @@ -422,16 +413,12 @@ irc_color_decode (const char *string, int keep_colors) bg_rgb = -1; if (str_fg[0]) { - error = NULL; - fg_rgb = strtol (str_fg, &error, 16); - if (!error || error[0]) + if (!weechat_util_parse_long (str_fg, 16, &fg_rgb)) fg_rgb = -1; } if (str_bg[0]) { - error = NULL; - bg_rgb = strtol (str_bg, &error, 16); - if (!error || error[0]) + if (!weechat_util_parse_long (str_bg, 16, &bg_rgb)) bg_rgb = -1; } str_fg[0] = '\0'; diff --git a/src/plugins/irc/irc-command.c b/src/plugins/irc/irc-command.c index 67306a8a5..f70f858b9 100644 --- a/src/plugins/irc/irc-command.c +++ b/src/plugins/irc/irc-command.c @@ -232,9 +232,8 @@ irc_command_mode_nicks (struct t_irc_server *server, char ** irc_command_mode_masks_convert_ranges (char **argv, int arg_start) { - char **str_masks, **masks, *error1, *error2, *pos, str_number[32]; - int i, length, added; - long j, number1, number2; + char **str_masks, **masks, *pos, str_number[32]; + int i, j, length, added, number1, number2; if (!argv || (arg_start < 0)) return NULL; @@ -255,12 +254,8 @@ irc_command_mode_masks_convert_ranges (char **argv, int arg_start) && (argv[i][length - 1] != '-')) { pos[0] = '\0'; - error1 = NULL; - number1 = strtol (argv[i], &error1, 10); - error2 = NULL; - number2 = strtol (pos + 1, &error2, 10); - if (error1 && !error1[0] - && error2 && !error2[0] + if (weechat_util_parse_int (argv[i], 10, &number1) + && weechat_util_parse_int (pos + 1, 10, &number2) && (number1 > 0) && (number1 < 128) && (number2 > 0) && (number2 < 128) && (number1 < number2)) @@ -269,8 +264,7 @@ irc_command_mode_masks_convert_ranges (char **argv, int arg_start) { if ((*str_masks)[0]) weechat_string_dyn_concat (str_masks, " ", -1); - snprintf (str_number, sizeof (str_number), - "%ld", j); + snprintf (str_number, sizeof (str_number), "%d", j); weechat_string_dyn_concat (str_masks, str_number, -1); } added = 1; @@ -312,14 +306,12 @@ irc_command_mode_masks (struct t_irc_server *server, const char *set, const char *mode, char **argv, int pos_masks) { - int max_modes, modes_added, msg_priority; + int max_modes, modes_added, msg_priority, number; char **modes, **masks, *mask; struct t_irc_channel *ptr_channel; struct t_irc_nick *ptr_nick; struct t_irc_modelist *ptr_modelist; struct t_irc_modelist_item *ptr_item; - long number; - char *error; if (irc_mode_get_chanmode_type (server, mode[0]) != 'A') { @@ -367,9 +359,7 @@ irc_command_mode_masks (struct t_irc_server *server, /* use modelist item for number arguments */ if (ptr_modelist && (set[0] == '-')) { - error = NULL; - number = strtol (argv[pos_masks], &error, 10); - if (error && !error[0]) + if (weechat_util_parse_int (argv[pos_masks], 10, &number)) { ptr_item = irc_modelist_item_search_number (ptr_modelist, number - 1); @@ -2622,9 +2612,8 @@ irc_command_ignore_display (struct t_irc_ignore *ignore) IRC_COMMAND_CALLBACK(ignore) { struct t_irc_ignore *ptr_ignore; - char *mask, *regex, *regex2, *ptr_regex, *pos, *server, *channel, *error; - int length, update; - long number; + char *mask, *regex, *regex2, *ptr_regex, *pos, *server, *channel; + int length, number, update; /* make C compiler happy */ (void) pointer; @@ -2767,9 +2756,7 @@ IRC_COMMAND_CALLBACK(ignore) } else { - error = NULL; - number = strtol (argv[2], &error, 10); - if (error && !error[0]) + if (weechat_util_parse_int (argv[2], 10, &number)) { ptr_ignore = irc_ignore_search_by_number (number); if (ptr_ignore) @@ -3430,18 +3417,15 @@ int irc_command_list_get_int_arg (int argc, char **argv, int arg_number, int default_value) { - long value; - char *error; + int value; value = default_value; if (argc > arg_number) { - error = NULL; - value = strtol (argv[arg_number], &error, 10); - if (!error || error[0]) + if (!weechat_util_parse_int (argv[arg_number], 10, &value)) value = default_value; } - return (int)value; + return value; } /* diff --git a/src/plugins/irc/irc-config.c b/src/plugins/irc/irc-config.c index abbbea234..004c8cfd1 100644 --- a/src/plugins/irc/irc-config.c +++ b/src/plugins/irc/irc-config.c @@ -1288,10 +1288,8 @@ irc_config_server_check_value_cb (const void *pointer, void *data, struct t_config_option *option, const char *value) { - int index_option, proxy_found; + int index_option, number, proxy_found; const char *pos_error, *proxy_name; - char *error; - long number; struct t_infolist *infolist; /* make C compiler happy */ @@ -1364,9 +1362,7 @@ irc_config_server_check_value_cb (const void *pointer, void *data, case IRC_SERVER_OPTION_SPLIT_MSG_MAX_LENGTH: if (!value || !value[0]) break; - error = NULL; - number = strtol (value, &error, 10); - if (!error || error[0]) + if (!weechat_util_parse_int (value, 10, &number)) { /* * not a valid number, but we return 1 (OK) to let WeeChat diff --git a/src/plugins/irc/irc-info.c b/src/plugins/irc/irc-info.c index 325426aed..48f1ead12 100644 --- a/src/plugins/irc/irc-info.c +++ b/src/plugins/irc/irc-info.c @@ -985,9 +985,8 @@ irc_info_infolist_irc_modelist_item_cb (const void *pointer, void *data, struct t_irc_channel *ptr_channel; struct t_irc_modelist *ptr_modelist; struct t_irc_modelist_item *ptr_item; - char **argv, *error; - int argc; - long number; + char **argv; + int argc, number; /* make C compiler happy */ (void) pointer; @@ -1029,15 +1028,12 @@ irc_info_infolist_irc_modelist_item_cb (const void *pointer, void *data, } if (!obj_pointer && (argc >= 4)) { - error = NULL; - number = strtol (argv[3], &error, 10); - if (!error || error[0] || (number < 0)) + if (!weechat_util_parse_int (argv[3], 10, &number) || (number < 0)) { weechat_string_free_split (argv); return NULL; } - obj_pointer = irc_modelist_item_search_number (ptr_modelist, - (int)number); + obj_pointer = irc_modelist_item_search_number (ptr_modelist, number); if (!obj_pointer) { weechat_string_free_split (argv); diff --git a/src/plugins/irc/irc-list.c b/src/plugins/irc/irc-list.c index 7fad10b88..ff4c27772 100644 --- a/src/plugins/irc/irc-list.c +++ b/src/plugins/irc/irc-list.c @@ -234,9 +234,8 @@ int irc_list_channel_match_filter (struct t_irc_server *server, struct t_irc_list_channel *channel) { - char *error, *result; - long number; - int match; + char *result; + int match, number; /* no filter? then any channel is matching */ if (!server->list->filter) @@ -280,25 +279,22 @@ irc_list_channel_match_filter (struct t_irc_server *server, else if (strncmp (server->list->filter, "u:>", 3) == 0) { /* filter by users (> N)*/ - error = NULL; - number = strtol (server->list->filter + 3, &error, 10); - if (error && !error[0] && channel->users > (int)number) + if (weechat_util_parse_int (server->list->filter + 3, 10, &number) + && (channel->users > number)) return 1; } else if (strncmp (server->list->filter, "u:<", 3) == 0) { /* filter by users (< N)*/ - error = NULL; - number = strtol (server->list->filter + 3, &error, 10); - if (error && !error[0] && channel->users < (int)number) + if (weechat_util_parse_int (server->list->filter + 3, 10, &number) + && (channel->users < number)) return 1; } else if (strncmp (server->list->filter, "u:", 2) == 0) { /* filter by users */ - error = NULL; - number = strtol (server->list->filter + 2, &error, 10); - if (error && !error[0] && channel->users >= (int)number) + if (weechat_util_parse_int (server->list->filter + 2, 10, &number) + && (channel->users >= number)) return 1; } else @@ -375,10 +371,9 @@ int irc_list_parse_messages (struct t_irc_server *server, const char *output) { struct t_irc_list_channel *channel; - char **irc_msgs, *command, **params, *error; + char **irc_msgs, *command, **params; const char *ptr_name; - int i, count_irc_msgs, num_params, length, keep_colors; - long number; + int i, count_irc_msgs, num_params, length, keep_colors, number; if (server->list->channels) { @@ -439,9 +434,9 @@ irc_list_parse_messages (struct t_irc_server *server, const char *output) ptr_name++; } channel->name2 = strdup (ptr_name); - error = NULL; - number = strtol (params[2], &error, 10); - channel->users = (error && !error[0]) ? number : 0; + if (!weechat_util_parse_int (params[2], 10, &number)) + number = 0; + channel->users = number; channel->topic = (num_params > 3) ? irc_color_decode (params[3], keep_colors) : NULL; length = weechat_utf8_strlen_screen (channel->name); diff --git a/src/plugins/irc/irc-message.c b/src/plugins/irc/irc-message.c index 3cc813619..2e242f72e 100644 --- a/src/plugins/irc/irc-message.c +++ b/src/plugins/irc/irc-message.c @@ -598,8 +598,7 @@ irc_message_parse_cap_multiline_value (struct t_irc_server *server, { struct t_hashtable *values; const char *ptr_value; - char *error; - long number; + int number; if (!server) return; @@ -617,18 +616,14 @@ irc_message_parse_cap_multiline_value (struct t_irc_server *server, ptr_value = (const char *)weechat_hashtable_get (values, "max-bytes"); if (ptr_value) { - error = NULL; - number = strtol (ptr_value, &error, 10); - if (error && !error[0]) + if (weechat_util_parse_int (ptr_value, 10, &number)) server->multiline_max_bytes = number; } ptr_value = (const char *)weechat_hashtable_get (values, "max-lines"); if (ptr_value) { - error = NULL; - number = strtol (ptr_value, &error, 10); - if (error && !error[0]) + if (weechat_util_parse_int (ptr_value, 10, &number)) server->multiline_max_lines = number; } diff --git a/src/plugins/irc/irc-protocol.c b/src/plugins/irc/irc-protocol.c index 3c3312375..c957b3189 100644 --- a/src/plugins/irc/irc-protocol.c +++ b/src/plugins/irc/irc-protocol.c @@ -4061,9 +4061,8 @@ IRC_PROTOCOL_CALLBACK(001) IRC_PROTOCOL_CALLBACK(005) { - char *str_info, *error, *isupport2; - int i, arg_last, length_isupport, length, casemapping, utf8mapping; - long value; + char *str_info, *isupport2; + int i, arg_last, length_isupport, length, casemapping, utf8mapping, value; IRC_PROTOCOL_MIN_PARAMS(2); @@ -4081,34 +4080,26 @@ IRC_PROTOCOL_CALLBACK(005) else if (strncmp (ctxt->params[i], "LINELEN=", 8) == 0) { /* save max message length */ - error = NULL; - value = strtol (ctxt->params[i] + 8, &error, 10); - if (error && !error[0] && (value > 0)) - ctxt->server->msg_max_length = (int)value; + if (weechat_util_parse_int (ctxt->params[i] + 8, 10, &value) && (value > 0)) + ctxt->server->msg_max_length = value; } else if (strncmp (ctxt->params[i], "NICKLEN=", 8) == 0) { /* save max nick length */ - error = NULL; - value = strtol (ctxt->params[i] + 8, &error, 10); - if (error && !error[0] && (value > 0)) - ctxt->server->nick_max_length = (int)value; + if (weechat_util_parse_int (ctxt->params[i] + 8, 10, &value) && (value > 0)) + ctxt->server->nick_max_length = value; } else if (strncmp (ctxt->params[i], "USERLEN=", 8) == 0) { /* save max user length */ - error = NULL; - value = strtol (ctxt->params[i] + 8, &error, 10); - if (error && !error[0] && (value > 0)) - ctxt->server->user_max_length = (int)value; + if (weechat_util_parse_int (ctxt->params[i] + 8, 10, &value) && (value > 0)) + ctxt->server->user_max_length = value; } else if (strncmp (ctxt->params[i], "HOSTLEN=", 8) == 0) { /* save max host length */ - error = NULL; - value = strtol (ctxt->params[i] + 8, &error, 10); - if (error && !error[0] && (value > 0)) - ctxt->server->host_max_length = (int)value; + if (weechat_util_parse_int (ctxt->params[i] + 8, 10, &value) && (value > 0)) + ctxt->server->host_max_length = value; } else if (strncmp (ctxt->params[i], "CASEMAPPING=", 12) == 0) { @@ -4144,10 +4135,8 @@ IRC_PROTOCOL_CALLBACK(005) else if (strncmp (ctxt->params[i], "MONITOR=", 8) == 0) { /* save monitor (limit) */ - error = NULL; - value = strtol (ctxt->params[i] + 8, &error, 10); - if (error && !error[0] && (value > 0)) - ctxt->server->monitor = (int)value; + if (weechat_util_parse_int (ctxt->params[i] + 8, 10, &value) && (value > 0)) + ctxt->server->monitor = value; } else if (strncmp (ctxt->params[i], "CLIENTTAGDENY=", 14) == 0) { diff --git a/src/plugins/irc/irc-redirect.c b/src/plugins/irc/irc-redirect.c index 62409a35a..b20b88dab 100644 --- a/src/plugins/irc/irc-redirect.c +++ b/src/plugins/irc/irc-redirect.c @@ -404,9 +404,8 @@ irc_redirect_new_with_commands (struct t_irc_server *server, const char *cmd_filter) { struct t_irc_redirect *new_redirect; - char **items[4], *item_upper, *pos, *error; - int i, j, num_items[4]; - long value; + char **items[4], *item_upper, *pos; + int i, j, num_items[4], value; struct t_hashtable *hash_cmd[4]; new_redirect = malloc (sizeof (*new_redirect)); @@ -460,9 +459,7 @@ irc_redirect_new_with_commands (struct t_irc_server *server, if (pos) { pos[0] = '\0'; - error = NULL; - value = strtol (pos + 1, &error, 10); - if (!error || error[0]) + if (!weechat_util_parse_int (pos + 1, 10, &value)) value = -1; } item_upper = weechat_string_toupper (items[i][j]); @@ -1257,7 +1254,6 @@ irc_redirect_pattern_hsignal_cb (const void *pointer, void *data, struct t_hashtable *hashtable) { const char *pattern, *str_timeout, *cmd_start, *cmd_stop, *cmd_extra; - char *error; int number, timeout; /* make C compiler happy */ @@ -1295,9 +1291,7 @@ irc_redirect_pattern_hsignal_cb (const void *pointer, void *data, timeout = 0; if (str_timeout && str_timeout[0]) { - error = NULL; - number = (int)strtol (str_timeout, &error, 10); - if (error && !error[0]) + if (weechat_util_parse_int (str_timeout, 10, &number)) timeout = number; } @@ -1325,7 +1319,6 @@ irc_redirect_command_hsignal_cb (const void *pointer, void *data, { const char *server, *pattern, *redirect_signal, *str_count, *string; const char *str_timeout, *cmd_filter; - char *error; struct t_irc_server *ptr_server; int number, count, timeout; @@ -1366,18 +1359,14 @@ irc_redirect_command_hsignal_cb (const void *pointer, void *data, count = 1; if (str_count && str_count[0]) { - error = NULL; - number = (int)strtol (str_count, &error, 10); - if (error && !error[0]) + if (weechat_util_parse_int (str_count, 10, &number)) count = number; } timeout = 0; if (str_timeout && str_timeout[0]) { - error = NULL; - number = (int)strtol (str_timeout, &error, 10); - if (error && !error[0]) + if (weechat_util_parse_int (str_timeout, 10, &number)) timeout = number; } diff --git a/src/plugins/irc/irc-sasl.c b/src/plugins/irc/irc-sasl.c index 4891745b5..5108cbb61 100644 --- a/src/plugins/irc/irc-sasl.c +++ b/src/plugins/irc/irc-sasl.c @@ -109,7 +109,7 @@ irc_sasl_mechanism_scram (struct t_irc_server *server, const char *sasl_password, char **sasl_error) { - char *answer_base64, *string, *username, *username2, *data, **attrs, *error; + char *answer_base64, *string, *username, *username2, *data, **attrs; char nonce_client[18], nonce_client_base64[24 + 1], *nonce_server; char *salt_base64, *salt, *verifier_base64, *verifier, *attr_error; char *auth_no_proof, *auth_message; @@ -117,10 +117,10 @@ irc_sasl_mechanism_scram (struct t_irc_server *server, char client_signature[512 / 8], client_proof[512 / 8]; char client_proof_base64[((512 / 8) * 4) + 1], server_key[512 / 8]; char server_signature[512 / 8]; - int i, rc, length, num_attrs, iterations, salt_size, salted_password_size; + int i, rc, length, num_attrs, iterations, number; + int salt_size, salted_password_size; int client_key_size, stored_key_size, client_signature_size; int server_key_size, server_signature_size, verifier_size; - long number; if (!server || !hash_algo || !data_base64 || !sasl_username || !sasl_password) @@ -202,10 +202,8 @@ irc_sasl_mechanism_scram (struct t_irc_server *server, } else if (strncmp (attrs[i], "i=", 2) == 0) { - error = NULL; - number = strtol (attrs[i] + 2, &error, 10); - if (error && !error[0]) - iterations = (int)number; + if (weechat_util_parse_int (attrs[i] + 2, 10, &number)) + iterations = number; } else if (strncmp (attrs[i], "v=", 2) == 0) { diff --git a/src/plugins/irc/irc-server.c b/src/plugins/irc/irc-server.c index 490a3135a..517259719 100644 --- a/src/plugins/irc/irc-server.c +++ b/src/plugins/irc/irc-server.c @@ -676,10 +676,9 @@ int irc_server_set_addresses (struct t_irc_server *server, const char *addresses, int tls) { - int rc, i, default_port; - char *pos, *error, *addresses_eval; + int rc, i, default_port, number; + char *pos, *addresses_eval; const char *ptr_addresses; - long number; if (!server) return 0; @@ -753,19 +752,14 @@ irc_server_set_addresses (struct t_irc_server *server, const char *addresses, server->addresses_count * sizeof (server->retry_array[0])); for (i = 0; i < server->addresses_count; i++) { + server->ports_array[i] = default_port; pos = strchr (server->addresses_array[i], '/'); if (pos) { pos[0] = 0; pos++; - error = NULL; - number = strtol (pos, &error, 10); - server->ports_array[i] = (error && !error[0]) ? - number : default_port; - } - else - { - server->ports_array[i] = default_port; + if (weechat_util_parse_int (pos, 10, &number)) + server->ports_array[i] = number; } server->retry_array[i] = 0; } @@ -1518,18 +1512,14 @@ int irc_server_get_max_modes (struct t_irc_server *server) { const char *support_modes; - char *error; - long number; - int max_modes; + int max_modes, number; max_modes = 4; support_modes = irc_server_get_isupport_value (server, "MODES"); if (support_modes) { - error = NULL; - number = strtol (support_modes, &error, 10); - if (error && !error[0]) + if (weechat_util_parse_int (support_modes, 10, &number)) { max_modes = number; if (max_modes < 1) diff --git a/src/plugins/irc/irc-upgrade.c b/src/plugins/irc/irc-upgrade.c index 005193411..9f13fb5aa 100644 --- a/src/plugins/irc/irc-upgrade.c +++ b/src/plugins/irc/irc-upgrade.c @@ -356,11 +356,10 @@ irc_upgrade_read_cb (const void *pointer, void *data, int object_id, struct t_infolist *infolist) { - int flags, sock, size, i, index, nicks_count, num_items, utf8mapping; - long number; + int flags, sock, size, i, index, nicks_count, num_items, number, utf8mapping; + long long number_longlong; time_t join_time; - char *buf, option_name[64], **nicks, *nick_join, *pos, *error; - char **items; + char *buf, option_name[64], **nicks, *nick_join, *pos, **items; const char *buffer_name, *str, *nick; struct t_irc_server *ptr_server; struct t_irc_nick *ptr_nick; @@ -521,10 +520,8 @@ irc_upgrade_read_cb (const void *pointer, void *data, "LINELEN"); if (str) { - error = NULL; - number = strtol (str, &error, 10); - if (error && !error[0]) - irc_upgrade_current_server->msg_max_length = (int)number; + if (weechat_util_parse_int (str, 10, &number)) + irc_upgrade_current_server->msg_max_length = number; } } irc_upgrade_current_server->nick_max_length = weechat_infolist_integer (infolist, "nick_max_length"); @@ -540,10 +537,8 @@ irc_upgrade_read_cb (const void *pointer, void *data, "USERLEN"); if (str) { - error = NULL; - number = strtol (str, &error, 10); - if (error && !error[0]) - irc_upgrade_current_server->user_max_length = (int)number; + if (weechat_util_parse_int (str, 10, &number)) + irc_upgrade_current_server->user_max_length = number; } } /* "host_max_length" is new in WeeChat 2.6 */ @@ -558,10 +553,8 @@ irc_upgrade_read_cb (const void *pointer, void *data, "HOSTLEN"); if (str) { - error = NULL; - number = strtol (str, &error, 10); - if (error && !error[0]) - irc_upgrade_current_server->host_max_length = (int)number; + if (weechat_util_parse_int (str, 10, &number)) + irc_upgrade_current_server->host_max_length = number; } } irc_upgrade_current_server->casemapping = weechat_infolist_integer (infolist, "casemapping"); @@ -621,10 +614,8 @@ irc_upgrade_read_cb (const void *pointer, void *data, "MONITOR"); if (str) { - error = NULL; - number = strtol (str, &error, 10); - if (error && !error[0]) - irc_upgrade_current_server->monitor = (int)number; + if (weechat_util_parse_int (str, 10, &number)) + irc_upgrade_current_server->monitor = number; } } /* "clienttagdeny" is new in WeeChat 3.3 */ @@ -771,11 +762,9 @@ irc_upgrade_read_cb (const void *pointer, void *data, pos - nicks[i]); if (nick_join) { - error = NULL; - number = strtol (pos + 1, &error, 10); - if (error && !error[0]) + if (weechat_util_parse_longlong (pos + 1, 10, &number_longlong)) { - join_time = (time_t)number; + join_time = (time_t)number_longlong; irc_channel_join_smart_filtered_add (irc_upgrade_current_channel, nick_join, join_time);