<p>In <a href="https://github.com/geany/geany/pull/889#discussion_r50981463">tagmanager/ctags/c.c</a>:</p>
<pre style='color:#555'>> 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)))
</pre>
<p>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.</p>
<p>Your corrected example gives type <code>typename foo::a_type</code> (which looks more or less correct to my innocent eyes, except for the stripped <code><></code>, which I believe is an issue of what gets put in the statement's token list).</p>
<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br>Reply to this email directly or <a href="https://github.com/geany/geany/pull/889/files#r50981463">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABDrJxpevxMSj6xVKt5cb1bzGp_DNN0qks5peLqbgaJpZM4HMkrH.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
<link itemprop="url" href="https://github.com/geany/geany/pull/889/files#r50981463"></link>
<meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>