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