projects
/
claws.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
sync with 0.4.65cvs11
[claws.git]
/
src
/
recv.c
diff --git
a/src/recv.c
b/src/recv.c
index 5aec6ad996ee22debef049597c12bd81d68ca239..9d27fb7f3647dc3e0cc422c7e149b38f491a9833 100644
(file)
--- a/
src/recv.c
+++ b/
src/recv.c
@@
-33,6
+33,9
@@
#define BUFFSIZE 8192
#define BUFFSIZE 8192
+static RecvUIFunc recv_ui_func;
+static gpointer recv_ui_func_data;
+
gint recv_write_to_file(SockInfo *sock, const gchar *filename)
{
FILE *fp;
gint recv_write_to_file(SockInfo *sock, const gchar *filename)
{
FILE *fp;
@@
-115,13
+118,17
@@
gint recv_write(SockInfo *sock, FILE *fp)
if (len > 1 && buf[len - 1] == '\n' && buf[len - 2] == '\r') {
buf[len - 2] = '\n';
buf[len - 1] = '\0';
if (len > 1 && buf[len - 1] == '\n' && buf[len - 2] == '\r') {
buf[len - 2] = '\n';
buf[len - 1] = '\0';
+ len--;
}
if (buf[0] == '.' && buf[1] == '.')
}
if (buf[0] == '.' && buf[1] == '.')
- memmove(buf, buf + 1,
strlen(buf)
);
+ memmove(buf, buf + 1,
len--
);
if (!strncmp(buf, ">From ", 6))
if (!strncmp(buf, ">From ", 6))
- memmove(buf, buf + 1, strlen(buf));
+ memmove(buf, buf + 1, len--);
+
+ if (recv_ui_func)
+ recv_ui_func(sock, len, recv_ui_func_data);
if (fp && fputs(buf, fp) == EOF) {
perror("fputs");
if (fp && fputs(buf, fp) == EOF) {
perror("fputs");
@@
-187,3
+194,9
@@
gint recv_bytes_write(SockInfo *sock, glong size, FILE *fp)
if (nb) sock_set_nonblocking_mode(sock, TRUE);
return 0;
}
if (nb) sock_set_nonblocking_mode(sock, TRUE);
return 0;
}
+
+void recv_set_ui_func(RecvUIFunc func, gpointer data)
+{
+ recv_ui_func = func;
+ recv_ui_func_data = data;
+}