<p><b>@elextr</b> commented on this pull request.</p>

<hr>

<p>In <a href="https://github.com/geany/geany/pull/2270#discussion_r317350293">src/build.c</a>:</p>
<pre style='color:#555'>> @@ -2577,15 +2565,20 @@ void build_save_menu(GKeyFile *config, gpointer ptr, GeanyBuildSource src)
                                g_key_file_remove_key(config, build_grp_name, "error_regex", NULL);
                        if (pj->priv->build_filetypes_list != NULL)
                        {
-                               data.config = config;
-                               data.ft_names = g_ptr_array_new();
-                               g_ptr_array_foreach(pj->priv->build_filetypes_list, foreach_project_filetype, (gpointer)(&data));
-                               if (data.ft_names->pdata != NULL)
+                               GPtrArray *ft_names = g_ptr_array_new();
+                               guint i;
+                               
+                               foreach_ptr_array(ft, i, pj->priv->build_filetypes_list)
</pre>
<p><a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1107820" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ntrel">@ntrel</a>, agree there is some argument for the document loop one, since there isn't any really obvious solution to the <code>is_valid</code> thing.  (Aside, I thought the point of document IDs was to avoid dangling pointers, but my memory is a bit hazy and I don't have time just now to revise at this instant)</p>
<p>But if <code>FOREACH_DOCUMENT</code> is kept somehow it needs to be discoverable and documented, or people will only find it by accident reading existing code.  For example what does it do if the set of documents is changed by the user? Or is that just documented "don't do that"?</p>
<p>But for the others, I agree with <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=181177" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/codebrainz">@codebrainz</a> that since most contributors to Geany don't work on it constantly, using standard C is most likely to be understood.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/geany/geany/pull/2270?email_source=notifications&email_token=AAIOWJ33HHVCACUG5KEBP7LQGDWTPA5CNFSM4IOW2V4KYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCCSX5DQ#discussion_r317350293">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AAIOWJZCQWKYUM3HCN6FSK3QGDWTPANCNFSM4IOW2V4A">mute the thread</a>.<img src="https://github.com/notifications/beacon/AAIOWJ6I57FIDOTJXZT6V2TQGDWTPA5CNFSM4IOW2V4KYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCCSX5DQ.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/geany/geany/pull/2270?email_source=notifications\u0026email_token=AAIOWJ33HHVCACUG5KEBP7LQGDWTPA5CNFSM4IOW2V4KYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCCSX5DQ#discussion_r317350293",
"url": "https://github.com/geany/geany/pull/2270?email_source=notifications\u0026email_token=AAIOWJ33HHVCACUG5KEBP7LQGDWTPA5CNFSM4IOW2V4KYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCCSX5DQ#discussion_r317350293",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>