I agree with @codebrainz (as I already mentioned earlier).
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 *not* 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.
@codebrainz's `GSEAL` 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 `GSEAL`):
```C
#if GEANY_PRIVATE
# define GEANY_PRIVATE_FIELD(name) name
#else
# define GEANY_PRIVATE_FIELD(name) geany_private__##name
/* or, if we were real evil, we perhaps could even throw __LINE__ in there :) */
#endif
...
struct Something {
gint field1; /**< something public */
gint GEANY_PRIVATE_FIELD(field2); /* not public */
...
};
```
---
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/commit/302b40e9778ff49407902f3ef9f272ed202f4547#commitcomment-15040477