summaryrefslogtreecommitdiffstats
path: root/tools/genruby.rb
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2011-04-20 14:52:36 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2011-04-20 14:52:36 +0200
commit192943dadbf35084fa7c6b2e8df81be166eaacb5 (patch)
tree81f51d8ce96e43fdaec4bb43bc73cb9eac33e870 /tools/genruby.rb
parent73c5fd7139746254cdea89d17ddce4c243bb10aa (diff)
downloadffi-efl-192943dadbf35084fa7c6b2e8df81be166eaacb5.zip
ffi-efl-192943dadbf35084fa7c6b2e8df81be166eaacb5.tar.gz
genruby, add typedef for enum pointers if needed
Diffstat (limited to 'tools/genruby.rb')
-rwxr-xr-xtools/genruby.rb19
1 files changed, 5 insertions, 14 deletions
diff --git a/tools/genruby.rb b/tools/genruby.rb
index 763f119..002eb24 100755
--- a/tools/genruby.rb
+++ b/tools/genruby.rb
@@ -165,6 +165,9 @@ def gen_enums path, indent
args = values.split(',').collect { |cst| ':'+cst.strip.downcase }.join(', ').gsub(/=/,',').gsub(/ ,/,',')
r << indent+"# #{typedef} {...} #{typename};"
r << wrap_text( indent+"enum :#{v}, [ #{args} ]", 150, indent+' '*4 )
+ r << [ typename+' *', indent+"typedef :pointer, :#{v}_p" ]
+ r << [ typename+' **', indent+"typedef :pointer, :#{v}_pp" ]
+ r << [ typename+' ***', indent+"typedef :pointer, :#{v}_ppp" ]
end
r
end
@@ -252,21 +255,9 @@ end.each do |lib, output, module_name, module_base, enums, typedefs, callbacks,
f << HEADER.sub(/MNAME/,module_name).sub(/MBASE/,module_base)
f << "#{INDENT}#\n#{INDENT}ffi_lib '#{lib}'"
f << "\n#{INDENT}#\n#{INDENT}# ENUMS"
- f << "\n"+enums.join("\n") unless enums.empty?
+ f << "\n"+enums.collect { |t| ( t.is_a?(Array) ? ( TYPES_USAGE[t[0]] ? t[1] : nil ) : t ) }.compact.join("\n") unless enums.empty?
f << "\n#{INDENT}#\n#{INDENT}# TYPEDEFS"
- unless typedefs.empty?
- f << "\n"+typedefs.collect { |t|
- if t.is_a? Array
- if TYPES_USAGE[t[0]]
- t[1]
- else
- nil
- end
- else
- t
- end
- }.compact.join("\n")
- end
+ f << "\n"+typedefs.collect { |t| ( t.is_a?(Array) ? ( TYPES_USAGE[t[0]] ? t[1] : nil ) : t ) }.compact.join("\n") unless typedefs.empty?
f << "\n#{INDENT}#\n#{INDENT}# CALLBACKS"
f << "\n"+callbacks.join("\n") unless callbacks.empty?
f << "\n#{INDENT}#\n#{INDENT}# FUNCTIONS"