for (i = 0; i < st->tokenIndex; i++) {
const tokenInfo *const t = st->token[i];
/* stop if we find the token used to generate the tag name, or
* a name token in the middle yet not preceded by a scope separator */
if ((t == nameToken ||
(t->type == nameToken->type &&
t->keyword == nameToken->keyword &&
t->lineNumber == nameToken->lineNumber &&
strcmp(vStringValue(t->name), vStringValue(nameToken->name)) == 0)) ||
(t->type == TOKEN_NAME && seenType &&
(i > 0 && st->token[i - 1]->type != TOKEN_DOUBLE_COLON)))
ah, no, I was too quick :) I picked it on the webpage so it ain't github's fault this time, but no I used the version with the space.
Your corrected example gives type `typename foo::a_type` (which looks more or less correct to my innocent eyes, except for the stripped `<>`, which I believe is an issue of what gets put in the statement's token list).
--- Reply to this email directly or view it on GitHub: https://github.com/geany/geany/pull/889/files#r50981463