changeset 1943:11bda6d8daab

Add default server for private messages Add option 'default_server', based on a patch from Corris Randall.
author Mikael Berthe <mikael@lilotux.net>
date Sun, 27 Feb 2011 18:58:17 +0100
parents 3e39a336a992
children 098b7b5b4854
files mcabber/mcabber/commands.c mcabber/mcabberrc.example
diffstat 2 files changed, 20 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mcabber/mcabber/commands.c	Sun Feb 27 18:15:27 2011 +0100
+++ b/mcabber/mcabber/commands.c	Sun Feb 27 18:58:17 2011 +0100
@@ -1498,6 +1498,7 @@
 {
   char **paramlst;
   char *fjid, *msg;
+  char *uncompletedfjid = NULL;
   char *file = NULL;
   LmMessageSubType msg_type = LM_MESSAGE_SUB_TYPE_NOT_SET;
   bool quiet = FALSE;
@@ -1563,9 +1564,24 @@
   } else
     fjid = to_utf8(fjid);
 
+  if (!strchr(fjid, JID_DOMAIN_SEPARATOR)) {
+    const gchar *append_server = settings_opt_get("default_server");
+    if (append_server) {
+      gchar *res = strchr(fjid, JID_RESOURCE_SEPARATOR);
+      uncompletedfjid = fjid;
+      if (res) {
+        *res++ = '\0';
+        fjid = g_strdup_printf("%s%c%s%c%s", fjid, JID_DOMAIN_SEPARATOR, append_server,
+                               JID_RESOURCE_SEPARATOR, res);
+      } else
+        fjid = g_strdup_printf("%s%c%s", fjid, JID_DOMAIN_SEPARATOR, append_server);
+    }
+  }
+
   if (check_jid_syntax(fjid)) {
     scr_LogPrint(LPRINT_NORMAL, "Please specify a valid Jabber ID.");
     free_arg_lst(paramlst);
+    g_free(uncompletedfjid);
     g_free(fjid);
     return;
   }
@@ -1584,6 +1600,7 @@
 
   send_message_to(fjid, msg, NULL, msg_type, quiet);
 
+  g_free(uncompletedfjid);
   g_free(fjid);
   g_free(msg);
   free_arg_lst(paramlst);
--- a/mcabber/mcabberrc.example	Sun Feb 27 18:15:27 2011 +0100
+++ b/mcabber/mcabberrc.example	Sun Feb 27 18:58:17 2011 +0100
@@ -16,6 +16,9 @@
 # to a specific server.
 #set server = your.jabber.server
 
+# To automatically append the server to the JID in say_to, use this option:
+#set default_server = jabber.org
+
 # If port is not given, mcabber will try to find it out.
 #set port = 5222