about summary refs log tree commit diff stats
path: root/profanity.c
diff options
context:
space:
mode:
Diffstat (limited to 'profanity.c')
-rw-r--r--profanity.c163
1 files changed, 6 insertions, 157 deletions
diff --git a/profanity.c b/profanity.c
index d423747f..7ca3e52c 100644
--- a/profanity.c
+++ b/profanity.c
@@ -1,167 +1,16 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <ncurses.h>
-#include <string.h>
-#include <strophe/strophe.h>
-
 #include "log.h"
 #include "windows.h"
-#include "jabber.h"
-
-// reference to log
-extern FILE *logp;
-
-// window references
-extern WINDOW *title_bar;
-extern WINDOW *cmd_bar;
-extern WINDOW *cmd_win;
-extern WINDOW *main_win;
-
-// curses functions
-void event_loop(xmpp_ctx_t *ctx, xmpp_conn_t *conn);
+#include "app.h"
 
 int main(void)
 {   
-    char cmd[50];
-
-    xmpp_ctx_t *ctx;
-    xmpp_conn_t *conn;
-    xmpp_log_t *log;
-
-    start_log();
-
-    // initialise curses, and create windows
-    initgui();
+    log_init();
+    gui_init();
 
-    // set cursor in command window and loop on input
-    wmove(cmd_win, 0, 0);
-    while (TRUE) {
-        wgetstr(cmd_win, cmd);
-        
-        // handle quit
-        if (strcmp(cmd, "/quit") == 0) {
-            break;
-        // handle connect
-        } else if (strncmp(cmd, "/connect ", 9) == 0) {
-            char *user;
-            char passwd[20];
-
-            user = strndup(cmd+9, strlen(cmd)-9);
-            
-            mvwprintw(cmd_bar, 0, 0, "Enter password:");
-            wrefresh(cmd_bar);
-            
-            wclear(cmd_win);
-            noecho();
-            mvwgetstr(cmd_win, 0, 0, passwd);
-            echo();
-
-            mvwprintw(cmd_bar, 0, 0, "%s", user);
-            wrefresh(cmd_bar);
-            
-            wclear(cmd_win);
-            wmove(cmd_win, 0, 0);
-            wrefresh(cmd_win);
-
-            char loginmsg[100];
-            sprintf(loginmsg, "User <%s> logged in", user);
-            logmsg(PROF, loginmsg);
-           
-            xmpp_initialize();
-            
-            log = xmpp_get_file_logger(); 
-            ctx = xmpp_ctx_new(NULL, log);
-            conn = xmpp_conn_new(ctx);
-
-            xmpp_conn_set_jid(conn, user);
-            xmpp_conn_set_pass(conn, passwd);
-            xmpp_connect_client(conn, NULL, 0, conn_handler, ctx);
-
-            event_loop(ctx, conn);
-
-            break;
-        } else {
-            // echo ignore
-            wclear(cmd_win);
-            wmove(cmd_win, 0, 0);
-        }
-    }
+    start_profanity();
     
-    endwin();
-    fclose(logp);
+    gui_close();
+    log_close();
 
     return 0;
 }
-
-void event_loop(xmpp_ctx_t *ctx, xmpp_conn_t *conn)
-{
-    int cmd_y = 0;
-    int cmd_x = 0;
-
-    wtimeout(cmd_win, 0);
-
-    while(TRUE) {
-        int ch = ERR;
-        char command[100];
-        int size = 0;
-        
-        // while not enter
-        while(ch != '\n') {
-            usleep(1);
-            // handle incoming messages
-            xmpp_run_once(ctx, 10);
-
-            // move cursor back to cmd_win
-            getyx(cmd_win, cmd_y, cmd_x);
-            wmove(cmd_win, cmd_y, cmd_x);
-            
-            // echo off, and get some more input
-            noecho();
-            ch = wgetch(cmd_win);
-
-            // if delete pressed, go back and delete it
-            if (ch == 127) {
-                if (size > 0) {
-                    getyx(cmd_win, cmd_y, cmd_x);
-                    wmove(cmd_win, cmd_y, cmd_x-1);
-                    wdelch(cmd_win);
-                    size--;
-                }
-            }
-            // else if not error or newline, show it and store it
-            else if (ch != ERR && ch != '\n') {
-                waddch(cmd_win, ch);
-                command[size++] = ch;
-            }
-
-            echo();
-        }
-
-        command[size++] = '\0';
-
-        // newline was hit, check if /quit command issued
-        if (strcmp(command, "/quit") == 0) {
-            break;
-        } else {
-            // send the message
-            prof_send(command, ctx, conn);
-            
-            // show it in the main window
-            wprintw(main_win, "me: %s\n", command);
-            wrefresh(main_win);
-
-            // move back to the command window and clear it
-            wclear(cmd_win);
-            wmove(cmd_win, 0, 0);
-            wrefresh(cmd_win);
-        }
-    }
-
-    xmpp_conn_release(conn);
-    xmpp_ctx_free(ctx);
-
-    xmpp_shutdown();
-
-}
-