summaryrefslogtreecommitdiff
path: root/noncore/net/opieirc/ircmessage.cpp
Unidiff
Diffstat (limited to 'noncore/net/opieirc/ircmessage.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opieirc/ircmessage.cpp35
1 files changed, 32 insertions, 3 deletions
diff --git a/noncore/net/opieirc/ircmessage.cpp b/noncore/net/opieirc/ircmessage.cpp
index d823ad1..d0b2652 100644
--- a/noncore/net/opieirc/ircmessage.cpp
+++ b/noncore/net/opieirc/ircmessage.cpp
@@ -1,7 +1,10 @@
1#include <qtextstream.h> 1#include <qtextstream.h>
2#include <qstring.h>
3#include <qstringlist.h>
4
2#include "ircmessage.h" 5#include "ircmessage.h"
3 6
4/* 7/*
5 * Create a new IRCMessage by evaluating 8 * Create a new IRCMessage by evaluating
6 * a received string 9 * a received string
7 */ 10 */
@@ -61,32 +64,58 @@ IRCMessage::IRCMessage(QString line) {
61 m_parameters << m_allParameters; 64 m_parameters << m_allParameters;
62 } 65 }
63 } else { 66 } else {
64 m_ctcp = FALSE; 67 m_ctcp = FALSE;
65 } 68 }
66 69
67 /* 70 /*
68 -- Uncomment to debug -- 71 //-- Uncomment to debug --
69 72
70 printf("Parsed : '%s'\n", line.ascii()); 73 printf("Parsed : '%s'\n", line.ascii());
71 printf("Prefix : '%s'\n", m_prefix.ascii()); 74 printf("Prefix : '%s'\n", m_prefix.ascii());
72 printf("Command : '%s'\n", m_command.ascii()); 75 printf("Command : '%s'\n", m_command.ascii());
73 printf("Allparameters : '%s'\n", m_allParameters.ascii()); 76 printf("Allparameters : '%s'\n", m_allParameters.ascii());
74 for (unsigned int i=0; i<m_parameters.count(); i++) { 77 for (unsigned int i=0; i<m_parameters.count(); i++) {
75 printf("Parameter %i : '%s'\n", i, m_parameters[i].ascii()); 78 printf("Parameter %i : '%s'\n", i, m_parameters[i].ascii());
76 } 79 }
77 printf("CTCP Command : '%s'\n", m_ctcpCommand.latin1()); 80 printf("CTCP Command : '%s'\n", m_ctcpCommand.latin1());
78 printf("CTCP Destination : '%s'\n", m_ctcpDestination.latin1()); 81 printf("CTCP Destination : '%s'\n", m_ctcpDestination.latin1());
79 printf("CTCP param count is : '%i'\n", m_parameters.count()); 82 printf("CTCP param count is : '%i'\n", m_parameters.count());
83
80 */ 84 */
81} 85}
82 86
83QString IRCMessage::param(int param) { 87QString IRCMessage::param(int param) {
84 return m_parameters[param]; 88 return m_parameters[param];
85} 89}
86 90
91QStringList IRCMessage::params(const QString &paramstring) const {
92 QStringList params, retvalue;
93 params = QStringList::split(',', paramstring);
94 QStringList::Iterator end = params.end();
95
96 for (QStringList::Iterator it = params.begin(); it != end; ++it) {
97 int pos = (*it).find(':');
98 if(pos < 0) {
99 if((*it).toInt() < m_parameters.count())
100 retvalue << m_parameters[(*it).toInt()];
101 }
102
103 else {
104 int start, end;
105 start = (*it).left(pos).toInt();
106 end = (*it).mid(pos+1).toInt();
107 for (int i=start;i<=end && i < m_parameters.count() ;++i) {
108 retvalue << m_parameters[i];
109 }
110 }
111 }
112
113 return retvalue;
114}
115
87QString IRCMessage::prefix() { 116QString IRCMessage::prefix() {
88 return m_prefix; 117 return m_prefix;
89} 118}
90 119
91QString IRCMessage::command() { 120QString IRCMessage::command() {
92 return m_command; 121 return m_command;