bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] exclude: port to strict C99


From: Paul Eggert
Subject: [PATCH] exclude: port to strict C99
Date: Fri, 18 Apr 2014 22:29:55 -0700

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 fb25112..5d38d82 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2014-04-18  Paul Eggert  <address@hidden>
+
+       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  <address@hidden>
 
        regex: do not depend on malloc-gnu
diff --git a/lib/exclude.c b/lib/exclude.c
index 201394a..14b59b7 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;
-- 
1.9.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]