本文整理汇总了C++中IrcUser::host方法的典型用法代码示例。如果您正苦于以下问题:C++ IrcUser::host方法的具体用法?C++ IrcUser::host怎么用?C++ IrcUser::host使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IrcUser
的用法示例。
在下文中一共展示了IrcUser::host方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: expand
void AliasManager::expand(const QString &alias, const BufferInfo &bufferInfo, const QString &msg, CommandList &list) {
const Network *net = network(bufferInfo.networkId());
if(!net) {
// FIXME send error as soon as we have a method for that!
return;
}
QRegExp paramRangeR("\\$(\\d+)\\.\\.(\\d*)");
QStringList commands = alias.split(QRegExp("; ?"));
QStringList params = msg.split(' ');
QStringList expandedCommands;
for(int i = 0; i < commands.count(); i++) {
QString command = commands[i];
// replace ranges like $1..3
if(!params.isEmpty()) {
int pos;
while((pos = paramRangeR.indexIn(command)) != -1) {
int start = paramRangeR.cap(1).toInt();
bool ok;
int end = paramRangeR.cap(2).toInt(&ok);
if(!ok) {
end = params.count();
}
if(end < start)
command = command.replace(pos, paramRangeR.matchedLength(), QString());
else {
command = command.replace(pos, paramRangeR.matchedLength(), QStringList(params.mid(start - 1, end - start + 1)).join(" "));
}
}
}
for(int j = params.count(); j > 0; j--) {
IrcUser *ircUser = net->ircUser(params[j - 1]);
command = command.replace(QString("$%1:hostname").arg(j), ircUser ? ircUser->host() : QString("*"));
command = command.replace(QString("$%1").arg(j), params[j - 1]);
}
command = command.replace("$0", msg);
command = command.replace("$channelname", bufferInfo.bufferName()); // legacy
command = command.replace("$channel", bufferInfo.bufferName());
command = command.replace("$currentnick", net->myNick()); // legacy
command = command.replace("$nick", net->myNick());
expandedCommands << command;
}
while(!expandedCommands.isEmpty()) {
QString command;
if(expandedCommands[0].trimmed().toLower().startsWith("/wait")) {
command = expandedCommands.join("; ");
expandedCommands.clear();
} else {
command = expandedCommands.takeFirst();
}
list.append(qMakePair(bufferInfo, command));
}
}