------ 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--