/j and /join only prepend # when channel names start with letters or numbers
[quassel.git] / src / core / userinputhandler.cpp
index 00aabc2..bc3bb65 100644 (file)
@@ -41,7 +41,7 @@ void UserInputHandler::handleUserInput(const BufferInfo &bufferInfo, const QStri
     int secondSlashPos = msg.indexOf('/', 1);
     int firstSpacePos = msg.indexOf(' ');
     if(!msg.startsWith('/') || (secondSlashPos != -1 && (secondSlashPos < firstSpacePos || firstSpacePos == -1))) {
-      if(secondSlashPos == 1)
+      if(msg.startsWith("//"))
        msg.remove(0, 1); // //asdf is transformed to /asdf
       cmd = QString("SAY");
     } else {
@@ -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]);