- more 1.7 support.
- bug fix of SEGV at exception. thanks to Masahiro Sakai.
- use str_buf if available.
- suppress a warning.
1.7 support
- iconv_fail() became a macro, and setup in iconv_failure_initialize.
- Now Iconv inherits
Data
rather than Object
.
- avoiding iconv()'s bug on some systems.
- avoiding Solaris7&8 iconv()'s bug.
- removed
BUGGY_ICONV
macro, always resets output pointer by
converting an empty string before shift state initializations.
- ignores errors when input length is 0.
- trying to avoid problem of Free BSD iconv.
- defaulted to none-buggy iconv.
- declared iconv_fail with
NORETURN
.
- merged with unprotoized version.
- ensures out of scope Iconv objects to be closed.
- raises when closed Iconv passed to Iconv#iconv.
RUBY_DATA_FUNC
was not a macro.
- compatible for 1.4 and 1.5.
- defines
OBJ_INFECT
macro for 1.4.
- uses
rb_obj_freeze()
if present.
Ruby style.
Modified rd.
- Strict check for change, whether output differs input.
- Added
rb_str_derive()
, to ensure infect with tainted object.
- Initialize @mesg to failed.inspect and brushed up about
exception.
- Changed Iconv::Failure initialization.
- Workaround for
iconv()
's bug in glibc, by "resetting" with
empty string before initializing output shift state.
- Added NULL check for outptr before range check for
outlen. This may workaround some
iconv()
's bug.
- Shortened message upon Iconv::OutOfRange.
- Now
iconv_convert
no longer pushes returning value into array,
except with exception. And uses <<
to add precedents,
in other words, it's no longer bound to Array.
iconv_each
also uses <<
.
- Iconv.iconv no longer append surplus empty string.
- Bug-fix of the workaround while converting UCS-4 string.
- Workaround for
iconv()
's bug returns horrible value as
outbytesleft.
- Now Iconv::Failure is a module. So, the exceptions include it.
- Iconv::Failre#success had been
nil
.
iconv_convert()
had returned original string.
Release version