Align rb_add_directory and rb_add_file function signatures with the current rb_iterate API The rb_iterate function now expects an iter_func with a signature matching rb_block_call_func_t. Historically, rb_block_call_func_t had only two parameters, but over time, it evolved to include more.
This patch: - Uses the RB_BLOCK_CALL_FUNC_ARGLIST macro to absorb API differences in ohcount. - Places the function definitions within %{ %} in the SWIG interface file to prevent SWIG from generating wrappers. - Avoids issues caused by SWIG wrappers mishandling the (const VALUE *) parameter in iter_funcs.
Details: SWIG casts the (const VALUE *) parameter to (void *const *) in generated wrapper code before calling the code in ohcount.i Leading to incompatibilities when wrapping macro generated or hardcoded up-to-date iter_func signatures. By preventing SWIG from wrapping these functions, we avoid such issues.