------art_7186_4971060.1212561601203
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hi,

Here is a patch that handles both argument check and default value.
ChangeLog:

* ext/iconv/iconv.c : Iconv#iconv's length parameter default value changed
to nil, which means to the end of the string. Any negative length, including -1,
makes iconv return "".
* iconv_convert : treats length as conversion length rather than an end index
to match String#[fixnum, fixnum].

Thanks,
Vincent

------art_7186_4971060.1212561601203
Content-Type: text/plain; name=iconv_convert_range_fix-1.8.patch.txt
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fh1jjvv70
Content-Disposition: attachment;
 filename
onv_convert_range_fix-1.8.patch.txt SW5kZXg6IGV4dC9pY29udi9pY29udi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGV4dC9pY29udi9pY29udi5j CShyZXZpc2lvbiAxNjc5OSkKKysrIGV4dC9pY29udi9pY29udi5jCSh3b3JraW5nIGNvcHkpCkBA IC00MTcsMTcgKzQxNywyNSBAQAogCXNsZW4gPSBSU1RSSU5HKHN0ciktPmxlbjsKIAlpbnB0ciA9 IFJTVFJJTkcoc3RyKS0+cHRyOwogCi0JaWYgKHN0YXJ0IDwgMCA/IChzdGFydCArPSBzbGVuKSA8 IDAgOiBzdGFydCA+PSBzbGVuKQotCSAgICBsZW5ndGggPSAwOwotCWVsc2UgaWYgKGxlbmd0aCA8 IDAgJiYgKGxlbmd0aCArPSBzbGVuICsgMSkgPCAwKQotCSAgICBsZW5ndGggPSAwOwotCWVsc2Ug aWYgKChsZW5ndGggLT0gc3RhcnQpIDwgMCkKLQkgICAgbGVuZ3RoID0gMDsKLQllbHNlIHsKLQkg ICAgaW5wdHIgKz0gc3RhcnQ7Ci0JICAgIGlmIChsZW5ndGggPiBzbGVuKQotCQlsZW5ndGggPSBz bGVuOwotCX0KKyAgICAgICAgaWYgKGxlbmd0aCA+IHNsZW4pIGxlbmd0aCA9IHNsZW47CisgICAg ICAgIAorICAgICAgICBpZiAoc3RhcnQgPiBzbGVuKSB7CisgICAgICAgICAgICBzdGFydCA9IHNs ZW47CisgICAgICAgICAgICBsZW5ndGggPSAwOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYg KHN0YXJ0IDwgMCkgeworICAgICAgICAgICAgc3RhcnQgKz0gc2xlbjsKKyAgICAgICAgICAgIGlm IChzdGFydCA8IDApIHsKKyAgICAgICAgICAgICAgICBzdGFydCA9IDA7CisgICAgICAgICAgICAg ICAgbGVuZ3RoID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChs ZW5ndGggPCAwIHx8IHN0YXJ0ICsgbGVuZ3RoID4gc2xlbikgeworICAgICAgICAgICAgbGVuZ3Ro ID0gc2xlbiAtIHN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgaWYgKHN0YXJ0ID4gMCAmJiBz dGFydCA8PSBzbGVuKSBpbnB0ciArPSBzdGFydDsKICAgICB9CiAgICAgaW5zdGFydCA9IGlucHRy OwogICAgIGlubGVuID0gbGVuZ3RoOwpAQCAtNzE5LDcgKzcyNyw3IEBACiAKIC8qCiAgKiBEb2N1 bWVudC1tZXRob2Q6IEljb252I2ljb252Ci0gKiBjYWxsLXNlcTogaWNvbnYoc3RyLCBzdGFydD0w LCBsZW5ndGg9LTEpCisgKiBjYWxsLXNlcTogaWNvbnYoc3RyLCBzdGFydD0wLCBsZW5ndGg9bmls KQogICoKICAqIENvbnZlcnRzIHN0cmluZyBhbmQgcmV0dXJucyB0aGUgcmVzdWx0LgogICogKiBJ ZiArc3RyKyBpcyBhIFN0cmluZywgY29udmVydHMgPHR0PnN0cltzdGFydCwgbGVuZ3RoXTwvdHQ+ IGFuZCByZXR1cm5zIHRoZSBjb252ZXJ0ZWQgc3RyaW5nLgpAQCAtNzMyLDcgKzc0MCw3IEBACiAg KgogICogc3RyOjogICAgc3RyaW5nIHRvIGJlIGNvbnZlcnRlZCwgb3IgbmlsCiAgKiBzdGFydDo6 ICBzdGFydGluZyBvZmZzZXQKLSAqIGxlbmd0aDo6IGNvbnZlcnNpb24gbGVuZ3RoOyBuaWwgb3Ig LTEgbWVhbnMgd2hvbGUgdGhlIHN0cmluZyBmcm9tIHN0YXJ0CisgKiBsZW5ndGg6OiBjb252ZXJz aW9uIGxlbmd0aDsgbmlsIG1lYW5zIHdob2xlIHRoZSBzdHJpbmcgZnJvbSBzdGFydAogICoKICAq ID09PSBFeGNlcHRpb25zCiAgKgpAQCAtNzYxLDkgKzc2OSwxOCBAQAogICAgIG4xID0gbjIgPSBR bmlsOwogICAgIHJiX3NjYW5fYXJncyhhcmdjLCBhcmd2LCAiMTIiLCAmc3RyLCAmbjEsICZuMik7 CiAKKyAgICBpbnQgbGVuOworICAgIGlmIChOSUxfUChuMikpIHsKKyAgICAgICAgbGVuID0gLTE7 CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBsZW4gPSBOVU0ySU5UKG4yKTsKKyAgICAgICAg aWYgKGxlbiA8IDApIGxlbiA9IDA7CisgICAgfQorCiAgICAgcmV0dXJuIGljb252X2NvbnZlcnQo VkFMVUUySUNPTlYoY2QpLCBzdHIsCiAJCQkgTklMX1AobjEpID8gMCA6IE5VTTJJTlQobjEpLAot CQkJIE5JTF9QKG4yKSA/IC0xIDogTlVNMklOVChuMiksCisJCQkgbGVuLAogCQkJIE5VTEwpOwog fQogCg------art_7186_4971060.1212561601203--