Can someone please have a look whether I got the function casting right
this time?

Thanks
    J�rg
-- 
Joerg Mayer                                           <[EMAIL PROTECTED]>
We are stuck with technology when what we really want is just stuff that
works. Some say that should read Microsoft instead of technology.
Index: lemon.c
===================================================================
RCS file: /usr/local/cvsroot/ethereal/tools/lemon/lemon.c,v
retrieving revision 1.16
diff -p -u -r1.16 lemon.c
--- lemon.c     18 Jan 2004 15:53:43 -0000      1.16
+++ lemon.c     24 Jan 2004 14:50:18 -0000
@@ -1490,6 +1490,10 @@ static int argindex(int n)
 
 static char emsg[] = "Command line syntax error: ";
 
+typedef void (opt_func_int_t)(int);
+typedef void (opt_func_double_t)(double);
+typedef void (opt_func_string_t)(char*);
+
 /*
 ** Process a flag command line argument.
 */
@@ -1511,7 +1515,7 @@ static int handleflags(int i, FILE *err)
   }else if( op[j].type==OPT_FLAG ){
     *((int*)op[j].arg) = v;
   }else if( op[j].type==OPT_FFLAG ){
-    (*(void(*)())(op[j].arg))(v);
+    ((opt_func_int_t*)(op[j].arg))(v);
   }else{
     if( err ){
       fprintf(err,"%smissing argument on switch.\n",emsg);
@@ -1591,19 +1595,19 @@ static int handleswitch(int i, FILE *err
         *(double*)(op[j].arg) = dv;
         break;
       case OPT_FDBL:
-        (*(void(*)())(op[j].arg))(dv);
+        ((opt_func_double_t*)(op[j].arg))(dv);
         break;
       case OPT_INT:
         *(int*)(op[j].arg) = lv;
         break;
       case OPT_FINT:
-        (*(void(*)())(op[j].arg))((int)lv);
+        ((opt_func_int_t*)(op[j].arg))(lv);
         break;
       case OPT_STR:
         *(char**)(op[j].arg) = sv;
         break;
       case OPT_FSTR:
-        (*(void(*)())(op[j].arg))(sv);
+        ((opt_func_string_t*)(op[j].arg))(sv);
         break;
     }
   }
_______________________________________________
Ethereal-dev mailing list
[EMAIL PROTECTED]
http://www.ethereal.com/mailman/listinfo/ethereal-dev

Reply via email to