diff options
-rw-r--r-- | Makefile.am | 3 | ||||
-rw-r--r-- | src/chat_log.c | 51 | ||||
-rw-r--r-- | src/chat_log.h | 32 | ||||
-rw-r--r-- | src/jabber.c | 5 | ||||
-rw-r--r-- | src/profanity.c | 3 |
5 files changed, 93 insertions, 1 deletions
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 <boothj5@gmail.com> + * + * 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 <http://www.gnu.org/licenses/>. + * + */ + +#include <stdio.h> +#include <stdlib.h> + +#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 <boothj5@gmail.com> + * + * 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 <http://www.gnu.org/licenses/>. + * + */ + +#ifndef CHAT_LOG_H +#define CHAT_LOG_H + +#include <stdio.h> + +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(); } |