-rw-r--r-- | noncore/net/opieirc/ircmessage.cpp | 2 |
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 | |||
@@ -10,65 +10,65 @@ using namespace Opie::Core; | |||
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 | ||
18 | IRCMessage::IRCMessage(QString line) { | 18 | IRCMessage::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 | } |