<p>I agree with <a href="https://github.com/codebrainz" class="user-mention">@codebrainz</a> (as I already mentioned earlier).<br>
Sure, there is a gray area on what's public and private inside publicly accessible structures, as we (currently) don't have any way to enforce privacy here.  But we always stated that anything undocumented was <em>not</em> part of the API and could not be relied upon, so although in practice it was possible, we explicitly said we didn't support that.</p>

<p><a href="https://github.com/codebrainz" class="user-mention">@codebrainz</a>'s <code>GSEAL</code> mention is interesting.  We could introduce something like this to enforce privacy to some extent, similar to how private/protected members work in Python (for those not familiar with <code>GSEAL</code>):</p>

<div class="highlight highlight-source-c"><pre>#<span class="pl-k">if</span> GEANY_PRIVATE
# <span class="pl-k">define</span> <span class="pl-en">GEANY_PRIVATE_FIELD</span>(<span class="pl-v">name</span>) name
#<span class="pl-k">else</span>
# <span class="pl-k">define</span> <span class="pl-en">GEANY_PRIVATE_FIELD</span>(<span class="pl-v">name</span>) geany_private__##name
<span class="pl-c">/* or, if we were real evil, we perhaps could even throw __LINE__ in there :) */</span>
#<span class="pl-k">endif</span>

...

<span class="pl-k">struct</span> Something {
    gint field1; <span class="pl-c">/**< something public */</span>
    gint <span class="pl-smi">GEANY_PRIVATE_FIELD</span>(field2); <span class="pl-c">/* not public */</span>
    ...
};</pre></div>

<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/commit/302b40e9778ff49407902f3ef9f272ed202f4547#commitcomment-15040477">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABDrJ56oxjxXHJZXk7y6ekZ6H-r4AczYks5pQqYcgaJpZM4G3NbP.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/commit/302b40e9778ff49407902f3ef9f272ed202f4547#commitcomment-15040477"></link>
  <meta itemprop="name" content="View Commit"></meta>
</div>
<meta itemprop="description" content="View this Commit on GitHub"></meta>
</div>