Finally sanitizificat0red the mess and #ifdef hell with main.cpp, Global:: and friends
[quassel.git] / src / core / ctcphandler.cpp
index 23753cc..a944c02 100644 (file)
  ***************************************************************************/
 #include "ctcphandler.h"
 
-#include "global.h"
-#include "util.h"
 #include "message.h"
 #include "network.h"
+#include "quassel.h"
+#include "util.h"
 
 CtcpHandler::CtcpHandler(NetworkConnection *parent)
   : BasicHandler(parent),
@@ -44,7 +44,7 @@ QByteArray CtcpHandler::dequote(const QByteArray &message) {
   QByteArray dequotedMessage;
   QByteArray messagepart;
   QHash<QByteArray, QByteArray>::iterator ctcpquote;
-  
+
   // copy dequote Message
   for(int i = 0; i < message.size(); i++) {
     messagepart = message.mid(i,1);
@@ -86,15 +86,15 @@ QByteArray CtcpHandler::xdelimDequote(const QByteArray &message) {
 
 void CtcpHandler::parse(Message::Type messageType, const QString &prefix, const QString &target, const QByteArray &message) {
   QByteArray ctcp;
-  
+
   //lowlevel message dequote
   QByteArray dequotedMessage = dequote(message);
 
   CtcpType ctcptype = messageType == Message::Notice
     ? CtcpReply
     : CtcpQuery;
-  
-  quint8 flags = (messageType == Message::Notice && !network()->isChannelName(target))
+
+  Message::Flags flags = (messageType == Message::Notice && !network()->isChannelName(target))
     ? Message::Redirected
     : Message::None;
 
@@ -108,13 +108,11 @@ void CtcpHandler::parse(Message::Type messageType, const QString &prefix, const
 
     xdelimEndPos = dequotedMessage.indexOf(XDELIM, xdelimPos + 1);
     if(xdelimEndPos == -1) {
-      // no matching end delimiter found...
-      dequotedMessage = dequotedMessage.mid(xdelimPos + 1);
-      break;
-    } else {
-      ctcp = xdelimDequote(dequotedMessage.mid(xdelimPos + 1, xdelimEndPos - xdelimPos - 1));
-      dequotedMessage = dequotedMessage.mid(xdelimEndPos + 1);
+      // no matching end delimiter found... treat rest of the message as ctcp
+      xdelimEndPos = dequotedMessage.count();
     }
+    ctcp = xdelimDequote(dequotedMessage.mid(xdelimPos + 1, xdelimEndPos - xdelimPos - 1));
+    dequotedMessage = dequotedMessage.mid(xdelimEndPos + 1);
 
     //dispatch the ctcp command
     QString ctcpcmd = userDecode(target, ctcp.left(spacePos));
@@ -131,7 +129,7 @@ void CtcpHandler::parse(Message::Type messageType, const QString &prefix, const
 
     handle(ctcpcmd, Q_ARG(CtcpType, ctcptype), Q_ARG(QString, prefix), Q_ARG(QString, target), Q_ARG(QString, ctcpparam));
   }
-  
+
   if(!dequotedMessage.isEmpty())
     displayMsg(messageType, target, userDecode(target, dequotedMessage), prefix, flags);
 }
@@ -177,8 +175,8 @@ void CtcpHandler::handlePing(CtcpType ctcptype, const QString &prefix, const QSt
 void CtcpHandler::handleVersion(CtcpType ctcptype, const QString &prefix, const QString &target, const QString &param) {
   Q_UNUSED(target)
   if(ctcptype == CtcpQuery) {
-    reply(nickFromMask(prefix), "VERSION", QString("Quassel IRC (v%1 build >= %2) -- http://www.quassel-irc.org")
-        .arg(Global::quasselVersion).arg(Global::quasselBuild));
+    reply(nickFromMask(prefix), "VERSION", QString("Quassel IRC %1 (built on %2) -- http://www.quassel-irc.org")
+        .arg(Global::quasselVersion).arg(Global::quasselBuildDate));
     emit displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("Received CTCP VERSION request by %1").arg(prefix));
   } else {
     // display Version answer