about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2013-11-07 21:57:41 +0000
committerJames Booth <boothj5@gmail.com>2013-11-07 21:57:41 +0000
commit1248f49cfaf9806dfcf40e0d0f6fe854d693d6a3 (patch)
tree0788431d3a3f17185580ef37268bf4097ee2f53a
parent4abdb023961e94581f34ae4fede17532e05c0e7c (diff)
parentac7ec7f2d182d75ea15c5b07009709f106f6e691 (diff)
downloadprofani-tty-1248f49cfaf9806dfcf40e0d0f6fe854d693d6a3.tar.gz
Merge remote-tracking branch 'tsenart/connect-on-startup'
-rw-r--r--src/main.c4
-rw-r--r--src/profanity.c10
-rw-r--r--src/profanity.h2
3 files changed, 13 insertions, 3 deletions
diff --git a/src/main.c b/src/main.c
index 253c9237..c3065bd3 100644
--- a/src/main.c
+++ b/src/main.c
@@ -32,6 +32,7 @@
 static gboolean disable_tls = FALSE;
 static gboolean version = FALSE;
 static char *log = "INFO";
+static char *account_name = NULL;
 
 int
 main(int argc, char **argv)
@@ -40,6 +41,7 @@ main(int argc, char **argv)
     {
         { "version", 'v', 0, G_OPTION_ARG_NONE, &version, "Show version information", NULL },
         { "disable-tls", 'd', 0, G_OPTION_ARG_NONE, &disable_tls, "Disable TLS", NULL },
+        { "account", 'a', 0, G_OPTION_ARG_STRING, &account_name, "Auto connect to an account on start-up" },
         { "log",'l', 0, G_OPTION_ARG_STRING, &log, "Set logging levels, DEBUG, INFO (default), WARN, ERROR", "LEVEL" },
         { NULL }
     };
@@ -77,7 +79,7 @@ main(int argc, char **argv)
         return 0;
     }
 
-    prof_run(disable_tls, log);
+    prof_run(disable_tls, log, account_name);
 
     return 0;
 }
diff --git a/src/profanity.c b/src/profanity.c
index 4c621ffa..38be5531 100644
--- a/src/profanity.c
+++ b/src/profanity.c
@@ -58,7 +58,7 @@ static void _create_directories(void);
 static gboolean idle = FALSE;
 
 void
-prof_run(const int disable_tls, char *log_level)
+prof_run(const int disable_tls, char *log_level, char *account_name)
 {
     _init(disable_tls, log_level);
     log_info("Starting main event loop");
@@ -70,6 +70,14 @@ prof_run(const int disable_tls, char *log_level)
     char inp[INP_WIN_MAX];
     int size = 0;
 
+    ui_refresh();
+
+    if (account_name != NULL) {
+      char *cmd = "/connect";
+      snprintf(inp, sizeof(inp), "%s %s", cmd, account_name);
+      _process_input(inp);
+    }
+
     while(cmd_result == TRUE) {
         wint_t ch = ERR;
         size = 0;
diff --git a/src/profanity.h b/src/profanity.h
index 0cd59fd0..3dac6c3e 100644
--- a/src/profanity.h
+++ b/src/profanity.h
@@ -26,7 +26,7 @@
 #include "resource.h"
 #include "xmpp/xmpp.h"
 
-void prof_run(const int disable_tls, char *log_level);
+void prof_run(const int disable_tls, char *log_level, char *account_name);
 
 void prof_handle_login_success(const char *jid, const char *altdomain);
 void prof_handle_login_account_success(char *account_name);