From 3085daefc2ae3bbeb013f689c11d00b8cb6d837c Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 18 Apr 2014 22:29:55 -0700 Subject: [PATCH] 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. --- ChangeLog | 9 +++++++++ lib/exclude.c | 6 +++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index fb25112109..5d38d82889 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2014-04-18 Paul Eggert + + 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 regex: do not depend on malloc-gnu diff --git a/lib/exclude.c b/lib/exclude.c index 201394a096..14b59b70eb 100644 --- a/lib/exclude.c +++ b/lib/exclude.c @@ -668,8 +668,8 @@ add_exclude_fp (void (*add_func) (struct exclude *, char const *, int, void *), 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 @@ -686,7 +686,7 @@ add_exclude_file (void (*add_func) (struct exclude *, char const *, 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; -- 2.39.5