summaryrefslogtreecommitdiff
authorskyhusker <skyhusker>2005-06-09 20:06:01 (UTC)
committer skyhusker <skyhusker>2005-06-09 20:06:01 (UTC)
commitccc819750468aa161255e863dac4d2ca55ace253 (patch) (unidiff)
treedcd5f82590f051fe6c6efc6380cc4fc603bb1ae9
parent5173a392a1422add3e3ae2a38d6bd4eb5df3cf87 (diff)
downloadopie-ccc819750468aa161255e863dac4d2ca55ace253.zip
opie-ccc819750468aa161255e863dac4d2ca55ace253.tar.gz
opie-ccc819750468aa161255e863dac4d2ca55ace253.tar.bz2
Fix #1665
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opieirc/ircmessage.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/noncore/net/opieirc/ircmessage.cpp b/noncore/net/opieirc/ircmessage.cpp
index da8db77..f4b09bc 100644
--- a/noncore/net/opieirc/ircmessage.cpp
+++ b/noncore/net/opieirc/ircmessage.cpp
@@ -1,90 +1,90 @@
1#include <opie2/odebug.h> 1#include <opie2/odebug.h>
2 2
3using namespace Opie::Core; 3using namespace Opie::Core;
4 4
5 5
6#include <qtextstream.h> 6#include <qtextstream.h>
7#include <qstring.h> 7#include <qstring.h>
8#include <qstringlist.h> 8#include <qstringlist.h>
9#include <qregexp.h> 9#include <qregexp.h>
10 10
11#include "ircmessage.h" 11#include "ircmessage.h"
12 12
13/* 13/*
14 * Create a new IRCMessage by evaluating 14 * Create a new IRCMessage by evaluating
15 * a received string 15 * a received string
16 */ 16 */
17 17
18IRCMessage::IRCMessage(QString line) { 18IRCMessage::IRCMessage(QString line) {
19 /* Remove CRs from the message */ 19 /* Remove CRs from the message */
20 while((line.right(1) == "\n") || (line.right(1) == "\r")) 20 while((line.right(1) == "\n") || (line.right(1) == "\r"))
21 line = line.left(line.length() - 1); 21 line = line.left(line.length() - 1);
22 QTextIStream stream(&line); 22 QTextIStream stream(&line);
23 QString temp; 23 QString temp;
24 24
25 stream >> temp; 25 stream >> temp;
26 if (temp.startsWith(":")) { 26 if (temp.startsWith(":")) {
27 /* extract the prefix */ 27 /* extract the prefix */
28 m_prefix = temp.right(temp.length()-1); 28 m_prefix = temp.right(temp.length()-1);
29 stream >> temp; 29 stream >> temp;
30 m_command = temp.upper(); 30 m_command = temp.upper();
31 m_allParameters = line.right(line.length() - m_prefix.length() - m_command.length() - 3); 31 m_allParameters = line.right(line.length() - m_prefix.length() - m_command.length() - 3);
32 } else { 32 } else {
33 m_command = temp.upper(); 33 m_command = temp.upper();
34 m_allParameters = line.right(line.length() - m_command.length() - 1); 34 m_allParameters = line.right(line.length() - m_command.length() - 1);
35 } 35 }
36 36
37 /* Create a list of all parameters */ 37 /* Create a list of all parameters */
38 while(!(stream.atEnd())) { 38 while(!(stream.atEnd())) {
39 stream >> temp; 39 stream >> temp;
40 if (temp.startsWith(":")) { 40 if (temp.startsWith(":")) {
41 /* last parameter */ 41 /* last parameter */
42 m_trailing = line.right(line.length() - line.find(QChar(':'), 1) - 1); 42 m_trailing = line.right(line.length() - line.find(" :") - 2);
43 m_parameters << m_trailing; 43 m_parameters << m_trailing;
44 break; 44 break;
45 } else { 45 } else {
46 m_parameters << temp; 46 m_parameters << temp;
47 } 47 }
48 } 48 }
49 49
50 50
51 m_commandNumber = m_command.toInt(&m_isNumerical); 51 m_commandNumber = m_command.toInt(&m_isNumerical);
52 /* Is this a CTCP command */ 52 /* Is this a CTCP command */
53 if ((m_command == "PRIVMSG" || m_command == "NOTICE") && m_trailing.length()>0 && m_trailing.left(1) == QChar(1)) { 53 if ((m_command == "PRIVMSG" || m_command == "NOTICE") && m_trailing.length()>0 && m_trailing.left(1) == QChar(1)) {
54 m_ctcp = TRUE; 54 m_ctcp = TRUE;
55 55
56 m_ctcpRequest = (m_command == "PRIVMSG"); 56 m_ctcpRequest = (m_command == "PRIVMSG");
57 57
58 /* Strip CTCP \001 characters */ 58 /* Strip CTCP \001 characters */
59 m_allParameters = m_allParameters.replace(QRegExp(QChar(1)), ""); 59 m_allParameters = m_allParameters.replace(QRegExp(QChar(1)), "");
60 QTextIStream ctcpStream(&m_allParameters); 60 QTextIStream ctcpStream(&m_allParameters);
61 ctcpStream >> m_ctcpDestination; 61 ctcpStream >> m_ctcpDestination;
62 ctcpStream >> temp; 62 ctcpStream >> temp;
63 m_ctcpCommand = temp.upper().right(temp.length()-1); 63 m_ctcpCommand = temp.upper().right(temp.length()-1);
64 m_parameters.clear(); 64 m_parameters.clear();
65 int length = m_allParameters.length() - m_ctcpCommand.length() - 1; 65 int length = m_allParameters.length() - m_ctcpCommand.length() - 1;
66 length -= m_ctcpDestination.length() + 1; 66 length -= m_ctcpDestination.length() + 1;
67 if (length <= 0) { 67 if (length <= 0) {
68 m_allParameters = ""; 68 m_allParameters = "";
69 } 69 }
70 else { 70 else {
71 m_allParameters = m_allParameters.right(length); 71 m_allParameters = m_allParameters.right(length);
72 m_parameters << m_allParameters; 72 m_parameters << m_allParameters;
73 } 73 }
74 } 74 }
75 else { 75 else {
76 m_ctcp = FALSE; 76 m_ctcp = FALSE;
77 } 77 }
78 78
79 79
80 odebug << "Parsed: " << line << oendl; 80 odebug << "Parsed: " << line << oendl;
81 odebug << "Prefix: " << m_prefix << oendl; 81 odebug << "Prefix: " << m_prefix << oendl;
82 odebug << "Command: " << m_command << oendl; 82 odebug << "Command: " << m_command << oendl;
83 odebug << "Allparameters: " << m_allParameters << oendl; 83 odebug << "Allparameters: " << m_allParameters << oendl;
84 84
85 for (unsigned int i=0; i<m_parameters.count(); i++) { 85 for (unsigned int i=0; i<m_parameters.count(); i++) {
86 odebug << "Parameter " << i << ":" << m_parameters[i] << oendl; 86 odebug << "Parameter " << i << ":" << m_parameters[i] << oendl;
87 } 87 }
88 88
89 if(m_ctcp) { 89 if(m_ctcp) {
90 odebug << "CTCP " << (m_ctcpRequest? "Request" : "Reply") << ": " << m_ctcpCommand << oendl; 90 odebug << "CTCP " << (m_ctcpRequest? "Request" : "Reply") << ": " << m_ctcpCommand << oendl;