aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weechat/net.c2
-rw-r--r--weechat/net.h12
-rw-r--r--weechat/tomsg.c6
3 files changed, 7 insertions, 13 deletions
diff --git a/weechat/net.c b/weechat/net.c
index 656a7a5..1618130 100644
--- a/weechat/net.c
+++ b/weechat/net.c
@@ -287,7 +287,7 @@ void net_handle_recv(int fd,const char *msg){
i64 textlen=msglen-(textp-msg);
struct net_response res;
- res.type=NET_MESSAGE;
+ res.type=NET_HISTORY;
const char *endp;
res.timestamp=strtoll(stampp,(char**)&endp,10);
if(endp-stampp!=stamplen){
diff --git a/weechat/net.h b/weechat/net.h
index 335664c..6348a89 100644
--- a/weechat/net.h
+++ b/weechat/net.h
@@ -11,19 +11,13 @@ enum net_response_type{
NET_NAME,
NET_LIST,
NET_PONG,
- NET_HISTORY,
NET_MESSAGE,
+ NET_HISTORY,
NET_JOIN,
NET_INVITE,
NET_ONLINE,
};
-struct net_history_item{
- char *username;
- i64 timestamp;
- char *message;
-};
-
struct net_response{
enum net_response_type type;
union {
@@ -35,10 +29,6 @@ struct net_response{
char **items;
};
struct {
- int nhistory;
- struct net_history_item *history;
- };
- struct {
char *room;
char *username;
i64 timestamp;
diff --git a/weechat/tomsg.c b/weechat/tomsg.c
index 2103406..90e43b0 100644
--- a/weechat/tomsg.c
+++ b/weechat/tomsg.c
@@ -194,7 +194,7 @@ static void push_net_callback(int fd,struct net_response res,void *payload){
fprintf(debugf,"push_net_callback(fd=%d,res={.type=%d})\n",fd,res.type);
struct conndata *conn=weechat_hashtable_get(conntable,&fd);
assert(conn);
- if(res.type==NET_MESSAGE||res.type==NET_JOIN||res.type==NET_INVITE){
+ if(res.type==NET_MESSAGE||res.type==NET_HISTORY||res.type==NET_JOIN||res.type==NET_INVITE){
i64 roomi;
for(roomi=0;roomi<conn->nrooms;roomi++){
if(strcmp(conn->rooms[roomi]->name,res.room)==0){
@@ -215,6 +215,10 @@ static void push_net_callback(int fd,struct net_response res,void *payload){
weechat_printf_date_tags(
room->buffer,res.timestamp/1000000LL,private?"notify_private":"notify_message",
"%s\t%s",res.username,res.message);
+ } else if(res.type==NET_HISTORY){
+ weechat_printf_date_tags(
+ room->buffer,res.timestamp/1000000LL,NULL,
+ "%s\t%s",res.username,res.message);
} else if(res.type==NET_JOIN){
weechat_printf(room->buffer,"%sUser %s joined this room",netpfx,res.username);
if(room->buffer_nickgroup){