diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2011-05-09 23:04:45 +0200 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2011-05-09 23:04:45 +0200 |
commit | 5acfd1653e59f6baa191551a8a6c87f471faf299 (patch) | |
tree | 1a94160d470a4c93e8e61505db13ef147f147fbf | |
parent | 733a2ca1dd5ee08048eff4b50fbe5e07ee3498e1 (diff) | |
download | ffi-efl-5acfd1653e59f6baa191551a8a6c87f471faf299.zip ffi-efl-5acfd1653e59f6baa191551a8a6c87f471faf299.tar.gz |
bugfix ecore_getopt --help
-rw-r--r-- | lib/efl/ecore_getopt.rb | 10 | ||||
-rw-r--r-- | spec/ecore_getopt_spec.rb | 16 |
2 files changed, 15 insertions, 11 deletions
diff --git a/lib/efl/ecore_getopt.rb b/lib/efl/ecore_getopt.rb index 14e5f89..8e07f92 100644 --- a/lib/efl/ecore_getopt.rb +++ b/lib/efl/ecore_getopt.rb @@ -89,7 +89,7 @@ module Efl @ecore_getopt = nil @desc = desc @options = [ - [ 0, FFI::Pointer::NULL, FFI::Pointer::NULL, FFI::Pointer::NULL, 0, {:dummy=>FFI::Pointer::NULL} ] + [ 0 ], ] @values = [ [ :ptrp, FFI::Pointer::NULL ] @@ -120,6 +120,10 @@ module Efl @ecore_getopt[:strict] = @desc[:strict] if @desc.has_key? :strict @options.each_with_index do |o,i| d = @ecore_getopt.desc_ptr i + if o[0]==0 + d[:shortname] = d[:longname] = d[:help] = d[:metavar] = d[:action] = d[:action_param][:dummy] = 0 + break + end d[:shortname] = o[0].to_s.bytes.first d[:longname] = p_from_string o[1] d[:help] = p_from_string o[2] @@ -230,10 +234,10 @@ module Efl def callback_full short, long, help, meta, cb, data, arg_req, def_val self << [ short, long, help, meta, :ecore_getopt_action_callback, [:callback, [cb, data, arg_req, def_val] ] ] end - def callback_noargs short, long, help, cb, data + def callback_noargs short, long, help, cb, data=nil callback_full short, long, help, FFI::Pointer::NULL, cb, data, :ecore_getopt_desc_arg_requirement_no, FFI::Pointer::NULL end - def callback_args short, long, help, meta, cb, data + def callback_args short, long, help, meta, cb, data=nil callback_full short, long, help, meta, cb, data, :ecore_getopt_desc_arg_requirement_yes, FFI::Pointer::NULL end def help short, long diff --git a/spec/ecore_getopt_spec.rb b/spec/ecore_getopt_spec.rb index 9cd95dc..a3c3a30 100644 --- a/spec/ecore_getopt_spec.rb +++ b/spec/ecore_getopt_spec.rb @@ -125,14 +125,14 @@ describe Efl::EcoreGetopt do args = @p.parse ["progname","--version"] @values[:version].read_char.should == 1 end -# it "should handle -H" do -# args = @p.parse ["My lovely prog name","-H"] -# @values[:help].read_char.should == 1 -# end -# it "should handle --help" do -# args = @p.parse ["progname","--help"] -# @values[:help].read_char.should == 1 -# end + it "should handle -H" do + args = @p.parse ["My lovely prog name","-H"] + @values[:help].read_char.should == 1 + end + it "should handle --help" do + args = @p.parse ["progname","--help"] + @values[:help].read_char.should == 1 + end it "should handle -E" do args = @p.parse ["My lovely prog name","-E"] @values[:engines].read_char.should == 1 |