diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/fe-common/irc/dcc/fe-dcc-get.c | 2 | ||||
-rw-r--r-- | src/fe-common/irc/dcc/fe-dcc-send.c | 2 | ||||
-rw-r--r-- | src/fe-text/textbuffer.c | 11 | ||||
-rw-r--r-- | src/irc/dcc/dcc-get.c | 6 | ||||
-rw-r--r-- | src/irc/dcc/dcc-resume.c | 2 |
5 files changed, 17 insertions, 6 deletions
diff --git a/src/fe-common/irc/dcc/fe-dcc-get.c b/src/fe-common/irc/dcc/fe-dcc-get.c index 675cab65..99b6b963 100644 --- a/src/fe-common/irc/dcc/fe-dcc-get.c +++ b/src/fe-common/irc/dcc/fe-dcc-get.c @@ -108,7 +108,7 @@ static void dcc_error_close_not_found(const char *type, const char *nick, g_return_if_fail(fname != NULL); if (g_ascii_strcasecmp(type, "GET") != 0) return; - if (fname == '\0') fname = "(ANY)"; + if (fname == NULL || *fname == '\0') fname = "(ANY)"; printformat(NULL, NULL, MSGLEVEL_DCC, IRCTXT_DCC_GET_NOT_FOUND, nick, fname); } diff --git a/src/fe-common/irc/dcc/fe-dcc-send.c b/src/fe-common/irc/dcc/fe-dcc-send.c index 1fc43abd..7920bedc 100644 --- a/src/fe-common/irc/dcc/fe-dcc-send.c +++ b/src/fe-common/irc/dcc/fe-dcc-send.c @@ -108,7 +108,7 @@ static void dcc_error_close_not_found(const char *type, const char *nick, g_return_if_fail(fname != NULL); if (g_ascii_strcasecmp(type, "SEND") != 0) return; - if (fname == '\0') fname = "(ANY)"; + if (fname == NULL || *fname == '\0') fname = "(ANY)"; printformat(NULL, NULL, MSGLEVEL_DCC, IRCTXT_DCC_SEND_NOT_FOUND, nick, fname); } diff --git a/src/fe-text/textbuffer.c b/src/fe-text/textbuffer.c index 9e791f4c..a920fab2 100644 --- a/src/fe-text/textbuffer.c +++ b/src/fe-text/textbuffer.c @@ -590,27 +590,30 @@ GList *textbuffer_find_text(TEXT_BUFFER_REC *buffer, LINE_REC *startline, pre_line = line; for (i = 0; i < before; i++) { if (pre_line->prev == NULL || - g_list_find(matches, pre_line->prev) != NULL) + g_list_nth_data(matches, 0) == pre_line->prev || + g_list_nth_data(matches, 1) == pre_line->prev) break; pre_line = pre_line->prev; } for (; pre_line != line; pre_line = pre_line->next) - matches = g_list_append(matches, pre_line); + matches = g_list_prepend(matches, pre_line); match_after = after; } if (line_matched || match_after > 0) { /* matched */ - matches = g_list_append(matches, line); + matches = g_list_prepend(matches, line); if ((!line_matched && --match_after == 0) || (line_matched && match_after == 0 && before > 0)) - matches = g_list_append(matches, NULL); + matches = g_list_prepend(matches, NULL); } } + matches = g_list_reverse(matches); + if (preg != NULL) i_regex_unref(preg); g_string_free(str, TRUE); diff --git a/src/irc/dcc/dcc-get.c b/src/irc/dcc/dcc-get.c index 73c1b864..107f68fa 100644 --- a/src/irc/dcc/dcc-get.c +++ b/src/irc/dcc/dcc-get.c @@ -382,6 +382,8 @@ int get_file_params_count(char **params, int paramcount) if (*params[0] == '"') { /* quoted file name? */ for (pos = 0; pos < paramcount-3; pos++) { + if (strlen(params[pos]) == 0) + continue; if (params[pos][strlen(params[pos])-1] == '"' && get_params_match(params, pos+1)) return pos+1; @@ -428,6 +430,10 @@ static void ctcp_msg_dcc_send(IRC_SERVER_REC *server, const char *data, int p_id = -1; int passive = FALSE; + if (addr == NULL) { + addr = ""; + } + /* SEND <file name> <address> <port> <size> [...] */ /* SEND <file name> <address> 0 <size> <id> (DCC SEND passive protocol) */ params = g_strsplit(data, " ", -1); diff --git a/src/irc/dcc/dcc-resume.c b/src/irc/dcc/dcc-resume.c index 36f84ddf..ce0ac925 100644 --- a/src/irc/dcc/dcc-resume.c +++ b/src/irc/dcc/dcc-resume.c @@ -62,6 +62,8 @@ int get_file_params_count_resume(char **params, int paramcount) if (*params[0] == '"') { /* quoted file name? */ for (pos = 0; pos < paramcount-2; pos++) { + if (strlen(params[pos]) == 0) + continue; if (params[pos][strlen(params[pos])-1] == '"' && get_params_match_resume(params, pos+1)) return pos+1; |