On 06/09/2013 04:48 AM, Frank Lanitz wrote:
On Sun, 09 Jun 2013 03:54:05 -0700
Roger Booth <rbooth@kabooth.com> wrote:

I assume you are surprised by this. How dare the user of our docs not 
study to great lengths the implementations of the shit we (and others 
that have come before us) have produced. Nobody should have the 
effrontery to attempt to interface our code without spending a 
sufficient amount of time appreciating the edifice we have erected.
Please don't be a party-puper. Geany is FLOSS and everybody is welcome
to improve ... also the documentation. You recognized that the
documentation might not be clear in all cases. .. yepp. That's true.
But it's hard to find such things for somebody who knows the code from
deep inside the heard that Geany-Version -> API-Version -> ABI-Version.
so no need to document it for them. 
Please take a look at github and improve the parts of documentation.
Complaining on the mailing list that the whole documentation suckz just
is making people spending a lot of spare time sad and sending them into
aggro-mode.

Would be really happy to see a patch improving that aspect from
documentation as well as the Plugin-HowTo. 

cheers, 
Frank


_______________________________________________
Devel mailing list
Devel@lists.geany.org
https://lists.geany.org/cgi-bin/mailman/listinfo/devel
But if I'm going to *improve* the docs, I *still* have an outstanding (in a manner of speaking) question:

Why does the function plugin_init() accept the one parameter GeanyData*?

The reason that is a question is that the three global variables

GeanyPlugin         *geany_plugin;
GeanyData           *geany_data;
GeanyFunctions      *geany_functions;

are available to a plugin and you will notice that one of those global variables is geany_data which is suspiciously similar to the parameter to plugin_init().

So either there is no reason to pass the parameter to plugin_init() or there is a good reason to pass the parameter to plugin_init().

Either way, I'd like to know. Maybe others would to.

A previous reply from Matthew Brush made me think that I need to really spell out what I mean here. Say I have the following

GeanyData           *geany_data;
extern "C" void plugin_init(GeanyData *bob)
{
    if(*geany_data == *bob) {
        exit(1);
   } else {
       exit(2);
   }
}

What I'm trying to ask by this example, and remember, I'm a moron, is

    'is geany_data the same as bob?'

Please don't get all wishy-washy on me here. geany_data and bob are both pointers. My question is

    Do bob and geany_data point to the same location in memory.

Now you could all say "geez, moron, just do a comparison". I know how to do that. But that would only say that this version is blah.
What I want to know is about API guarantees. I want to be able to document the plugin_init() function and say
 
    geany_data == bob

or not.


P.S.

>> Complaining on the mailing list that the whole documentation suckz
Um, I was commenting on one macro for the plugin API. Actually, I think in general the docs are superb. I want to improve the areas where I see they can be improved, and I volunteer to do so and have already done so. What pissed me off was my impression that yall thought this particular area of the docs was just peachy and I was just blowing smoke.