From e26e8dd061c0a8897b80c0837f85467bbf0cbf72 Mon Sep 17 00:00:00 2001
From: Daniel Albers <daniel@lbers.com>
Date: Mon, 4 Aug 2008 12:04:58 +0200
Subject: [PATCH] /j and /join only prepend # when channel names start with letters or numbers

---
 src/core/corealiasmanager.cpp |    2 +-
 src/core/userinputhandler.cpp |    8 +++++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/core/corealiasmanager.cpp b/src/core/corealiasmanager.cpp
index af3353f..8fcdb02 100644
--- a/src/core/corealiasmanager.cpp
+++ b/src/core/corealiasmanager.cpp
@@ -54,5 +54,5 @@ CoreAliasManager::~CoreAliasManager() {
 
 void CoreAliasManager::loadDefaults() {
   // Default Aliases:
-  addAlias("j", "/join #$1");
+  addAlias("j", "/join $1");
 }
diff --git a/src/core/userinputhandler.cpp b/src/core/userinputhandler.cpp
index 7dec1dc..bc3bb65 100644
--- a/src/core/userinputhandler.cpp
+++ b/src/core/userinputhandler.cpp
@@ -156,9 +156,15 @@ void UserInputHandler::handleJoin(const BufferInfo &bufferInfo, const QString &m
   QStringList params = msg.trimmed().split(" ");
   QStringList chans = params[0].split(",");
   QStringList keys;
+  int i;
+  for(i = 0; i < chans.count(); i++) {
+    if (chans.at(i)[0].isLetterOrNumber())
+      chans[i].prepend(QChar('#'));
+  }
+  params[0] = chans.join(",");
   if(params.count() > 1) keys = params[1].split(",");
   emit putCmd("JOIN", serverEncode(params)); // FIXME handle messages longer than 512 bytes!
-  int i = 0;
+  i = 0;
   for(; i < keys.count(); i++) {
     if(i >= chans.count()) break;
     networkConnection()->addChannelKey(chans[i], keys[i]);
-- 
1.5.4.3

