[Geany] Minor source touchups
Daniel Richard G.
skunk at xxxxx
Tue Jan 20 02:27:08 UTC 2009
On Mon, 2009 Jan 19 20:48:51 +0100, Enrico Tröger wrote:
>
> On a similar note, I recently experienced some nasty crashes when using
> the geanyvc and spellcheck plugn together.
> After some investigation, I figured that in geanyvc.c there was a
> function 'execute_command' which was not declared static and without
> prototype. No problem so far.
> But the spellcheck plugin uses enchant and enchant loads
> libvoikko which loads libmalaga and libmalaga also has a function
> 'execute_command'. So there was a clash between these symbols for some
> reason causing weird segfaults when using any command of geanyvc which
> calls its 'execute_command'.
> Frank fixed this in r380 and the morale of the story is: use static
> whenever possible :). Probably a prototype for 'execute_command' had
> also fixed the problem.
At least there would have been a possibility of a conflict, which would
have revealed the problem sooner. Function clashes like that are a tricky
animal---that's when the binutils folks start talking about "weak" symbols
and the like. The other moral of your story is, if the function isn't going
to be static (and *especially* if it's exported from a shared library),
then for heaven's sake, namespace the name!
> >-Wstrict-prototypes :-) The warning it gives you is "function
> >declaration isn’t a prototype".
>
> But this option is not much fun since it causes many, many warnings in
> GLib/GTK headers.
Oh, of course. It's a rare luxury to be able to look at warnings directly
during compilation; I usually postprocess the build log to filter out the
ones I don't want to see.
Surely you're not going to let other people's laziness compromise *your*
exacting standards, hmmm? ;-)
--Daniel
--
NAME = Daniel Richard G. ## Remember, skunks _\|/_ meef?
EMAIL1 = skunk at iskunk.org ## don't smell bad--- (/o|o\) /
EMAIL2 = skunk at alum.mit.edu ## it's the people who < (^),>
WWW = http://www.******.org/ ## annoy them that do! / \
--
(****** = site not yet online)
More information about the Users
mailing list