From cacd5f5459dba658e0c88ceff32282a0e9fab0a5 Mon Sep 17 00:00:00 2001 From: Micha Hoiting Date: Wed, 7 Nov 2012 23:14:04 +0100 Subject: [PATCH] Add vararg support (Work In Progress) --- fakegen.rb | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/fakegen.rb b/fakegen.rb index 4a04bc9..85fa9e8 100644 --- a/fakegen.rb +++ b/fakegen.rb @@ -161,9 +161,10 @@ def popd $current_depth = $current_depth - 4 end -def output_macro(arg_count, is_value_function) +def output_macro(arg_count, is_value_function, is_vararg) - fake_macro_name = is_value_function ? "FAKE_VALUE_FUNC#{arg_count}" : "FAKE_VOID_FUNC#{arg_count}"; + vararg_name = is_vararg ? "_VARARG" : "" + fake_macro_name = is_value_function ? "FAKE_VALUE_FUNC#{arg_count}#{vararg_name}" : "FAKE_VOID_FUNC#{arg_count}#{vararg_name}"; declare_macro_name = "DECLARE_#{fake_macro_name}" define_macro_name = "DEFINE_#{fake_macro_name}" @@ -406,6 +407,8 @@ end # lets generate!! output_c_and_cpp{ define_fff_globals - $MAX_ARGS.times {|arg_count| output_macro(arg_count, false)} - $MAX_ARGS.times {|arg_count| output_macro(arg_count, true)} + $MAX_ARGS.times {|arg_count| output_macro(arg_count, false, false)} + $MAX_ARGS.times {|arg_count| output_macro(arg_count, true, false)} + $MAX_ARGS.times {|arg_count| output_macro(arg_count, false, true)} + $MAX_ARGS.times {|arg_count| output_macro(arg_count, true, true)} }