------art_60342_6646161.1182413055902
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On 6/21/07, Trans <transfire / gmail.com> wrote:

> Ah, so we need a patch. Okay well I guess I'll post that up on the
> board too.
Yes definitely ARGV is hardcoded, I was however fooling around, trying
to make a patch in less than a minute, which worked ;).

If you really want to send up a patch, please consider this one (it is
a correct patch created with diff -u this time too):

It does *not* temper with internal state, just allows an array to be
passed to #each or #get. I tested it with this use case:



------------------ 8< -------------------------
require 'getoptlong'

opt  etoptLong.new([ '-x', GetoptLong::NO_ARGUMENT ],[ '-b',
GetoptLong::REQUIRED_ARGUMENT])

blk  ambda do
  |*v|
  puts v.join(": ")
end
opt.dup.each %w{ -x -b 1024}, &blk

opt.dup.each %w{ -b 4096 }, &blk
------------------------------ 8<---------------------------

Please note the necessity of dup for reuse, I did not want to bother
with internal state of a class I do not understand and I have no time
to dig into :(.

Cheers
Robert


-- 
You see things; and you say Why?
But I dream things that never were; and I say Why not?
-- George Bernard Shaw

------art_60342_6646161.1182413055902
Content-Type: text/x-patch; name=getoptlong.patch; charset=ANSI_X3.4-1968
Content-Transfer-Encoding: base64
X-Attachment-Id: f_f36y5rwp
Content-Disposition: attachment; filename="getoptlong.patch"

LS0tIGdldG9wdGxvbmcucmIJMjAwNy0wMi0xMyAwMDowMToxOS4wMDAwMDAwMDAgKzAxMDAKKysr
IGdldG9wdGxvbmcubmV3LnJiCTIwMDctMDYtMjEgMDk6NTY6NTIuMDAwMDAwMDAwICswMjAwCkBA
IC00MzIsNyArNDMyLDcgQEAKICAgIyBSZXR1cm5zIG5pbCBpZiB0aGUgcHJvY2Vzc2luZyBpcyBj
b21wbGV0ZSAoYXMgZGV0ZXJtaW5lZCBieQogICAjIFNUQVRVU19URVJNSU5BVEVEKS4KICAgIwot
ICBkZWYgZ2V0CisgIGRlZiBnZXQgYXJncz1BUkdWCiAgICAgb3B0aW9uX25hbWUsIG9wdGlvbl9h
cmd1bWVudCA9IG5pbCwgJycKIAogICAgICMKQEAgLTQ1MSwyNiArNDUxLDI2IEBACiAgICAgIwog
ICAgIGlmIDAgPCBAcmVzdF9zaW5nbGVzLmxlbmd0aAogICAgICAgYXJndW1lbnQgPSAnLScgKyBA
cmVzdF9zaW5nbGVzCi0gICAgZWxzaWYgKEFSR1YubGVuZ3RoID09IDApCisgICAgZWxzaWYgKGFy
Z3MubGVuZ3RoID09IDApCiAgICAgICB0ZXJtaW5hdGUKICAgICAgIHJldHVybiBuaWwKICAgICBl
bHNpZiBAb3JkZXJpbmcgPT0gUEVSTVVURQotICAgICAgd2hpbGUgMCA8IEFSR1YubGVuZ3RoICYm
IEFSR1ZbMF0gIX4gL14tLi8KLQlAbm9uX29wdGlvbl9hcmd1bWVudHMucHVzaChBUkdWLnNoaWZ0
KQorICAgICAgd2hpbGUgMCA8IGFyZ3MubGVuZ3RoICYmIGFyZ3NbMF0gIX4gL14tLi8KKwlAbm9u
X29wdGlvbl9hcmd1bWVudHMucHVzaChhcmdzLnNoaWZ0KQogICAgICAgZW5kCi0gICAgICBpZiBB
UkdWLmxlbmd0aCA9PSAwCisgICAgICBpZiBhcmdzLmxlbmd0aCA9PSAwCiAJdGVybWluYXRlCiAJ
cmV0dXJuIG5pbAogICAgICAgZW5kCi0gICAgICBhcmd1bWVudCA9IEFSR1Yuc2hpZnQKKyAgICAg
IGFyZ3VtZW50ID0gYXJncy5zaGlmdAogICAgIGVsc2lmIEBvcmRlcmluZyA9PSBSRVFVSVJFX09S
REVSIAotICAgICAgaWYgKEFSR1ZbMF0gIX4gL14tLi8pCisgICAgICBpZiAoYXJnc1swXSAhfiAv
Xi0uLykKIAl0ZXJtaW5hdGUKIAlyZXR1cm4gbmlsCiAgICAgICBlbmQKLSAgICAgIGFyZ3VtZW50
ID0gQVJHVi5zaGlmdAorICAgICAgYXJndW1lbnQgPSBhcmdzLnNoaWZ0CiAgICAgZWxzZQotICAg
ICAgYXJndW1lbnQgPSBBUkdWLnNoaWZ0CisgICAgICBhcmd1bWVudCA9IGFyZ3Muc2hpZnQKICAg
ICBlbmQKIAogICAgICMKQEAgLTUxNyw4ICs1MTcsOCBAQAogICAgICAgaWYgQGFyZ3VtZW50X2Zs
YWdzW29wdGlvbl9uYW1lXSA9PSBSRVFVSVJFRF9BUkdVTUVOVAogCWlmIGFyZ3VtZW50ID1+IC89
KC4qKSQvCiAJICBvcHRpb25fYXJndW1lbnQgPSAkMQotCWVsc2lmIDAgPCBBUkdWLmxlbmd0aAot
CSAgb3B0aW9uX2FyZ3VtZW50ID0gQVJHVi5zaGlmdAorCWVsc2lmIDAgPCBhcmdzLmxlbmd0aAor
CSAgb3B0aW9uX2FyZ3VtZW50ID0gYXJncy5zaGlmdAogCWVsc2UKIAkgIHNldF9lcnJvcihNaXNz
aW5nQXJndW1lbnQsCiAJICAgICAgICAgICAgIm9wdGlvbiBgI3thcmd1bWVudH0nIHJlcXVpcmVz
IGFuIGFyZ3VtZW50IikKQEAgLTUyNiw4ICs1MjYsOCBAQAogICAgICAgZWxzaWYgQGFyZ3VtZW50
X2ZsYWdzW29wdGlvbl9uYW1lXSA9PSBPUFRJT05BTF9BUkdVTUVOVAogCWlmIGFyZ3VtZW50ID1+
IC89KC4qKSQvCiAJICBvcHRpb25fYXJndW1lbnQgPSAkMQotCWVsc2lmIDAgPCBBUkdWLmxlbmd0
aCAmJiBBUkdWWzBdICF+IC9eLS4vCi0JICBvcHRpb25fYXJndW1lbnQgPSBBUkdWLnNoaWZ0CisJ
ZWxzaWYgMCA8IGFyZ3MubGVuZ3RoICYmIGFyZ3NbMF0gIX4gL14tLi8KKwkgIG9wdGlvbl9hcmd1
bWVudCA9IGFyZ3Muc2hpZnQKIAllbHNlCiAJICBvcHRpb25fYXJndW1lbnQgPSAnJwogCWVuZApA
QCAtNTUzLDggKzU1Myw4IEBACiAJICBpZiAwIDwgQHJlc3Rfc2luZ2xlcy5sZW5ndGgKIAkgICAg
b3B0aW9uX2FyZ3VtZW50ID0gQHJlc3Rfc2luZ2xlcwogCSAgICBAcmVzdF9zaW5nbGVzID0gJycK
LQkgIGVsc2lmIDAgPCBBUkdWLmxlbmd0aAotCSAgICBvcHRpb25fYXJndW1lbnQgPSBBUkdWLnNo
aWZ0CisJICBlbHNpZiAwIDwgYXJncy5sZW5ndGgKKwkgICAgb3B0aW9uX2FyZ3VtZW50ID0gYXJn
cy5zaGlmdAogCSAgZWxzZQogCSAgICAjIDEwMDMuMiBzcGVjaWZpZXMgdGhlIGZvcm1hdCBvZiB0
aGlzIG1lc3NhZ2UuCiAJICAgIHNldF9lcnJvcihNaXNzaW5nQXJndW1lbnQsICJvcHRpb24gcmVx
dWlyZXMgYW4gYXJndW1lbnQgLS0gI3tjaH0iKQpAQCAtNTYzLDggKzU2Myw4IEBACiAJICBpZiAw
IDwgQHJlc3Rfc2luZ2xlcy5sZW5ndGgKIAkgICAgb3B0aW9uX2FyZ3VtZW50ID0gQHJlc3Rfc2lu
Z2xlcwogCSAgICBAcmVzdF9zaW5nbGVzID0gJycKLQkgIGVsc2lmIDAgPCBBUkdWLmxlbmd0aCAm
JiBBUkdWWzBdICF+IC9eLS4vCi0JICAgIG9wdGlvbl9hcmd1bWVudCA9IEFSR1Yuc2hpZnQKKwkg
IGVsc2lmIDAgPCBhcmdzLmxlbmd0aCAmJiBhcmdzWzBdICF+IC9eLS4vCisJICAgIG9wdGlvbl9h
cmd1bWVudCA9IGFyZ3Muc2hpZnQKIAkgIGVsc2UKIAkgICAgb3B0aW9uX2FyZ3VtZW50ID0gJycK
IAkgIGVuZApAQCAtNjA2LDkgKzYwNiw5IEBACiAgICMgVGhlIG9wdGlvbiBuYW1lIGlzIGFsd2F5
cyBjb252ZXJ0ZWQgdG8gdGhlIGZpcnN0IChwcmVmZXJyZWQpCiAgICMgbmFtZSBnaXZlbiBpbiB0
aGUgb3JpZ2luYWwgb3B0aW9ucyB0byBHZXRvcHRMb25nLm5ldy4KICAgIwotICBkZWYgZWFjaAor
ICBkZWYgZWFjaCBhcmdzPW5pbAogICAgIGxvb3AgZG8KLSAgICAgIG9wdGlvbl9uYW1lLCBvcHRp
b25fYXJndW1lbnQgPSBnZXRfb3B0aW9uCisgICAgICBvcHRpb25fbmFtZSwgb3B0aW9uX2FyZ3Vt
ZW50ID0gZ2V0X29wdGlvbiggYXJncyApCiAgICAgICBicmVhayBpZiBvcHRpb25fbmFtZSA9PSBu
aWwKICAgICAgIHlpZWxkIG9wdGlvbl9uYW1lLCBvcHRpb25fYXJndW1lbnQKICAgICBlbmQKQEAg
LTYxOCw0ICs2MTgsNSBAQAogICAjIGBlYWNoX29wdGlvbicgaXMgYW4gYWxpYXMgb2YgYGVhY2gn
LgogICAjCiAgIGFsaWFzIGVhY2hfb3B0aW9uIGVhY2gKKwogZW5kCg------art_60342_6646161.1182413055902--