From 83ef1d562c0c8fa4148193c46bbc7f519c80badc Mon Sep 17 00:00:00 2001 From: James Booth Date: Sun, 22 Jul 2012 20:53:55 +0100 Subject: [PATCH] Added simple chat log --- Makefile.am | 3 ++- src/chat_log.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ src/chat_log.h | 32 +++++++++++++++++++++++++++++++ src/jabber.c | 5 +++++ src/profanity.c | 3 +++ 5 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 src/chat_log.c create mode 100644 src/chat_log.h diff --git a/Makefile.am b/Makefile.am index f308ca90..02582865 100644 --- a/Makefile.am +++ b/Makefile.am @@ -5,7 +5,8 @@ profanity_SOURCES = src/command.c src/contact.c src/history.c src/jabber.h \ src/prof_autocomplete.h src/title_bar.c src/windows.c src/common.c \ src/contact_list.c src/input_win.c src/log.h src/profanity.c \ src/prof_history.c src/ui.h src/common.h src/ contact_list.h src/jabber.c \ - src/main.c src/profanity.h src/prof_history.h src/util.c + src/main.c src/profanity.h src/prof_history.h src/util.c src/chat_log.c \ + src/chat_log.h profanity_CFLAGS = -O3 -Werror -Wall -Wextra -Wno-unused-parameter \ -Wno-unused-but-set-variable -Wno-unused-result \ -Wno-missing-field-initializers diff --git a/src/chat_log.c b/src/chat_log.c new file mode 100644 index 00000000..3e685a96 --- /dev/null +++ b/src/chat_log.c @@ -0,0 +1,51 @@ +/* + * chat_log.c + * + * Copyright (C) 2012 James Booth + * + * This file is part of Profanity. + * + * Profanity is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Profanity is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Profanity. If not, see . + * + */ + +#include +#include + +#include "glib.h" + +#include "log.h" +#include "common.h" + +static FILE *chatlog; + +void chat_log_chat(const char * const user, const char * const msg) +{ + fprintf(chatlog, "%s: %s\n", user, msg); +} + +void chat_log_init(void) +{ + GString *log_file = g_string_new(getenv("HOME")); + g_string_append(log_file, "/.profanity/log"); + create_dir(log_file->str); + g_string_append(log_file, "/chat.log"); + logp = fopen(log_file->str, "a"); + g_string_free(log_file, TRUE); +} + +void chat_log_close(void) +{ + fclose(chatlog); +} diff --git a/src/chat_log.h b/src/chat_log.h new file mode 100644 index 00000000..abcd00d1 --- /dev/null +++ b/src/chat_log.h @@ -0,0 +1,32 @@ +/* + * chat_log.h + * + * Copyright (C) 2012 James Booth + * + * This file is part of Profanity. + * + * Profanity is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Profanity is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Profanity. If not, see . + * + */ + +#ifndef CHAT_LOG_H +#define CHAT_LOG_H + +#include + +void chat_log_init(void); +void chat_log_chat(const char * const user, const char * const msg); +void chat_log_close(void); + +#endif diff --git a/src/jabber.c b/src/jabber.c index 7d35f023..d9d3827c 100644 --- a/src/jabber.c +++ b/src/jabber.c @@ -27,6 +27,7 @@ #include "jabber.h" #include "common.h" #include "log.h" +#include "chat_log.h" #include "contact_list.h" #include "ui.h" #include "util.h" @@ -165,6 +166,8 @@ void jabber_send(const char * const msg, const char * const recipient) free(coded_msg); free(coded_msg2); free(coded_msg3); + + chat_log_chat("me", msg); } void jabber_roster_request(void) @@ -250,6 +253,8 @@ static int _jabber_message_handler(xmpp_conn_t * const conn, win_show_incomming_msg(from, message); win_page_off(); + chat_log_chat(from, message); + return 1; } diff --git a/src/profanity.c b/src/profanity.c index 499a9b04..f8ad400b 100644 --- a/src/profanity.c +++ b/src/profanity.c @@ -28,6 +28,7 @@ #include "profanity.h" #include "log.h" +#include "chat_log.h" #include "ui.h" #include "jabber.h" #include "command.h" @@ -69,6 +70,7 @@ void profanity_init(const int disable_tls) { create_config_directory(); log_init(); + chat_log_init(); prefs_load(); gui_init(); jabber_init(disable_tls); @@ -82,4 +84,5 @@ void _profanity_shutdown(void) jabber_disconnect(); gui_close(); log_close(); + chat_log_close(); }