diff options
author | Mark Spruiell <mes@zeroc.com> | 2006-08-01 16:28:49 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2006-08-01 16:28:49 +0000 |
commit | ff5f9d7729ef657e7da32dec79161a5f4090a0ed (patch) | |
tree | 94422a50c72213a922f04b0ad594bb709b297b74 /rb/src/IceRuby/Properties.cpp | |
parent | workaround for VC6 bug (diff) | |
download | ice-ff5f9d7729ef657e7da32dec79161a5f4090a0ed.tar.bz2 ice-ff5f9d7729ef657e7da32dec79161a5f4090a0ed.tar.xz ice-ff5f9d7729ef657e7da32dec79161a5f4090a0ed.zip |
insert program name into argument vector
Diffstat (limited to 'rb/src/IceRuby/Properties.cpp')
-rw-r--r-- | rb/src/IceRuby/Properties.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/rb/src/IceRuby/Properties.cpp b/rb/src/IceRuby/Properties.cpp index c4168d94b47..1ffa5e8821d 100644 --- a/rb/src/IceRuby/Properties.cpp +++ b/rb/src/IceRuby/Properties.cpp @@ -47,6 +47,13 @@ IceRuby_createProperties(int argc, VALUE* argv, VALUE self) defaults = getProperties(argv[1]); } + // + // Insert the program name (stored in the Ruby global variable $0) as the first + // element of the sequence. + // + VALUE progName = callRuby(rb_gv_get, "$0"); + seq.insert(seq.begin(), getString(progName)); + Ice::PropertiesPtr obj = Ice::createProperties(seq, defaults); // @@ -56,9 +63,12 @@ IceRuby_createProperties(int argc, VALUE* argv, VALUE self) { callRuby(rb_ary_clear, argv[0]); - for(Ice::StringSeq::iterator p = seq.begin(); p != seq.end(); ++p) + // + // We start at index 1 in order to skip the element that we inserted earlier. + // + for(Ice::StringSeq::size_type i = 1; i < seq.size(); ++i) { - VALUE str = createString(*p); + VALUE str = createString(seq[i]); callRuby(rb_ary_push, argv[0], str); } } |