From Bugzilla Helper: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) Description of problem: I just tried to compile package alchemist-1_0_27-3, from Redhat's Fedora system. The compiler said triggerblackbox.c(69): error: expected a ";" void clear(AdmRefStr **array) { The source code is static void triggerblackbox_free (void *data) { void clear(AdmRefStr **array) { unsigned int i=0; while (array[i] != NULL) { AdmRefStr_unref(array[i]); ++i; } free(array); } struct triggerblackbox_instance *in_p = data; AdmRefStr_unref(in_p->path); clear(in_p->arg_array); clear(in_p->env_array); free(in_p); } This isn't ISO C code - nested functions are not allowed. Suggest conform to ISO C language standard and move the definition of clear outside triggerblackbox_free. Version-Release number of selected component (if applicable): 1_0_27-3 How reproducible: Always Steps to Reproduce: 1. compile with ISO C compiler. 2. 3. Additional info:
We compile with gcc.
>We compile with gcc. True, but can I interest you in getting the code to conform with international standards, not just a feature of only one compiler ? That way, when the code conforms with the standard ISO C, then other, better, compilers can be used on the source code. Which leads to a better product.
Sure, send a patch. But alchemist is something that is being slowly phased out, and no new development is going to be done on it.
A whole slew of mistaken '&'s and '|'s turned up, so while fixing them I unnested this function too.