summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorailin-nemui <ailin-nemui@users.noreply.github.com>2017-06-19 11:06:24 +0200
committerGitHub <noreply@github.com>2017-06-19 11:06:24 +0200
commit1fc170ee11c308fae14a06aa29f2d8e3882cf9ce (patch)
tree3729b0a24fd3b207c2f717da770407ba27f1d5bf /src
parent4edfccfce794d4c10b2a92c02fe982bb089c6629 (diff)
parent9d3cfe1069b5cfaf0efb972e36695b781ecf93de (diff)
downloadirssi-1fc170ee11c308fae14a06aa29f2d8e3882cf9ce.zip
Merge branch 'master' into regexex
Diffstat (limited to 'src')
-rw-r--r--src/fe-common/irc/dcc/fe-dcc-get.c2
-rw-r--r--src/fe-common/irc/dcc/fe-dcc-send.c2
-rw-r--r--src/fe-text/textbuffer.c11
-rw-r--r--src/irc/dcc/dcc-get.c6
-rw-r--r--src/irc/dcc/dcc-resume.c2
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;