Hi all,
I've tried to compile Geany with the --disable-deprecated configure option, but I used… GTK+ 2.12 and GLib 2.16. Of course, it hasn't worked (mostly because of the new tooltip API and GObject generalization), but it's not really the reason of my mail.
In src/utils.c, g_strcasecmp() is used, but it is deprecated since 2.2. I dunno if the reason why it was deprecated have any incidence on what it is used here (I think not), but it breaks build without deprecated symbols even with 2.6. An easy fix is to copy the function (with another name or so) in the Geany's source code.
Another think I've noticed is that the tagmanager use GMemChunks for allocating memory, but the new GSlice API seems to be really faster (and simpler). What do you think about using it when compiling with GLib >= 2.10? It is easy to set up, just two macros to update. (patch attached - geany_r3060_tagmanager_gslice.patch)
Last thing: about marshal closures. I dunno if g_cclosure_marshal*() are present in GLib 2.6, but gtk_marshal*() are deprecated now, and I think glib-genmarshal is not a really recent tool. Then, it can be nice to move gtk_marshal*() to corresponding g_cclosure_marshal*() and/or to define which are needed in geany-marshal.[ch] files or so. (another patch attached - geany_r3060_no_gtk_marshal.patch). Patch for this is not really good because I'm not really knowing about automake & friends, and a make rule should be created to automatically create geany-marshal.[ch] from geany-marshal.list using glib-genmarshal at compile-time.
I attach a last patch, the global modifications I made do compile with --disable-deprecated with GTK+ 2.12 and GLib 2.16, if this is useful for anyone. Anything works but Scintilla, I've not understood the exact goal of calls using deprecated functions, and it haven't found an easy way to make it use newer functions.
Cheers, Colomban W.
PS: all three patches applies to r3083 too :)