+2014-04-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ exclude: port to strict C99
+ Strict C does not allow converting a function pointer to void *
+ and vice versa. Pass a pointer to a function pointer instead.
+ * lib/exclude.c (add_exclude_file):
+ Pass the address of the function pointer.
+ (call_addfn): And deference the address here, to match.
+
2014-04-17 Paul Eggert <eggert@cs.ucla.edu>
regex: do not depend on malloc-gnu
static void
call_addfn (struct exclude *ex, char const *pattern, int options, void *data)
{
- void (*addfn) (struct exclude *, char const *, int) = data;
- addfn (ex, pattern, options);
+ void (**addfnptr) (struct exclude *, char const *, int) = data;
+ (*addfnptr) (ex, pattern, options);
}
int
else if (! (in = fopen (file_name, "r")))
return -1;
- rc = add_exclude_fp (call_addfn, ex, in, options, line_end, add_func);
+ rc = add_exclude_fp (call_addfn, ex, in, options, line_end, &add_func);
if (!use_stdin && fclose (in) != 0)
rc = -1;