// Parse a license template, scan for %KEYWORD% and replace if known. // Replace '%%' by '%'. static void parseLicenseTemplatePlaceholders(QString *t) { int pos = 0; const QChar placeHolder = QLatin1Char('%'); bool isCompatibilityStyle = false; do { const int placeHolderPos = t->indexOf(placeHolder, pos); if (placeHolderPos == -1) break; const int endPlaceHolderPos = t->indexOf(placeHolder, placeHolderPos + 1); if (endPlaceHolderPos == -1) break; if (endPlaceHolderPos == placeHolderPos + 1) { // '%%' -> '%' t->remove(placeHolderPos, 1); pos = placeHolderPos + 1; } else { const QString keyWord = t->mid(placeHolderPos, endPlaceHolderPos + 1 - placeHolderPos); QString replacement; if (keyWordReplacement(keyWord, &replacement)) { isCompatibilityStyle = true; t->replace(placeHolderPos, keyWord.size(), replacement); pos = placeHolderPos + replacement.size(); } else { // Leave invalid keywords as is. pos = endPlaceHolderPos + 1; } } } while (pos < t->size()); if (isCompatibilityStyle) t->replace(QLatin1Char('\\'), QLatin1String("\\\\")); }
// Parse a license template, scan for %KEYWORD% and replace if known. // Replace '%%' by '%'. static void parseLicenseTemplatePlaceholders(QString *t, const QString &file, const QString &className) { int pos = 0; const QChar placeHolder = QLatin1Char('%'); do { const int placeHolderPos = t->indexOf(placeHolder, pos); if (placeHolderPos == -1) break; const int endPlaceHolderPos = t->indexOf(placeHolder, placeHolderPos + 1); if (endPlaceHolderPos == -1) break; if (endPlaceHolderPos == placeHolderPos + 1) { // '%%' -> '%' t->remove(placeHolderPos, 1); pos = placeHolderPos + 1; } else { const QString keyWord = t->mid(placeHolderPos, endPlaceHolderPos + 1 - placeHolderPos); QString replacement; if (keyWordReplacement(keyWord, file, className, &replacement)) { t->replace(placeHolderPos, keyWord.size(), replacement); pos = placeHolderPos + replacement.size(); } else { // Leave invalid keywords as is. pos = endPlaceHolderPos + 1; } } } while (pos < t->size()); }