本文整理汇总了C++中rocket::core::String::Insert方法的典型用法代码示例。如果您正苦于以下问题:C++ String::Insert方法的具体用法?C++ String::Insert怎么用?C++ String::Insert使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类rocket::core::String
的用法示例。
在下文中一共展示了String::Insert方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
//.........这里部分代码省略.........
if (span && !spanHasContent) {
spanHasContent = true;
out.Append(spanstr);
}
out.Append("<");
} else if (*p == '>') {
if (span && !spanHasContent) {
spanHasContent = true;
out.Append(spanstr);
}
out.Append(">");
} else if (*p == '&') {
if (span && !spanHasContent) {
spanHasContent = true;
out.Append(spanstr);
}
out.Append("&");
} else if (*p == '\n') {
out.Append(span && spanHasContent ? "</span><br />" : "<br />");
span = false;
spanHasContent = false;
} else if (Q_IsColorString(p)) {
if (span && spanHasContent) {
out.Append("</span>");
span = false;
spanHasContent = false;
}
char rgb[32];
int code = ColorIndex(*++p);
Com_sprintf(rgb, sizeof(rgb), "<span style='color: #%02X%02X%02X;'>", (int) (g_color_table[code][0] * 255), (int) (g_color_table[code][1] * 255), (int) (g_color_table[code][2] * 255));
// don't add the span yet, because it might be empty
spanstr = rgb;
span = true;
spanHasContent = false;
} else {
if (span && !spanHasContent) {
out.Append(spanstr);
spanHasContent = true;
}
out.Append(*p);
}
}
if (span && spanHasContent) {
out.Append("</span>");
}
// ^^ -> ^
while (out.Find("^^") != Rocket::Core::String::npos) {
out = out.Replace("^^", "^");
}
if (parseFlags & RP_EMOTICONS) {
// Parse emoticons
size_t openBracket = 0;
size_t closeBracket = 0;
size_t currentPosition = 0;
while (1) {
Rocket::Core::String emoticon;
const char* path;
openBracket = out.Find("[", currentPosition);
if (openBracket == Rocket::Core::String::npos) {
break;
}
closeBracket = out.Find("]", openBracket);
if (closeBracket == Rocket::Core::String::npos) {
break;
}
emoticon = out.Substring(openBracket + 1, closeBracket - openBracket - 1);
// Certain characters are invalid
if (emoticon.Empty() || IsInvalidEmoticon(emoticon)) {
currentPosition = closeBracket + 1;
continue;
}
// TODO: Dont hardcode the extension.
path = va("emoticons/%s.crn", emoticon.CString());
if (FS_FOpenFileRead(path, nullptr, true)) {
out.Erase(openBracket, closeBracket - openBracket + 1);
path = va("<img class='trem-emoticon' src='/emoticons/%s' />",
emoticon.CString());
out.Insert(openBracket, path);
currentPosition = openBracket + strlen(path) + 1;
} else {
currentPosition = closeBracket + 1;
}
}
}
return out;
}