https://issues.dlang.org/show_bug.cgi?id=21703
Issue ID: 21703
Summary: std.base64 : decoding a range with one element does
not work properly
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P1
Component: phobos
Assignee: [email protected]
Reporter: [email protected]
unittest
{
struct InputRange
{
ubyte[] impl = [ 'e', 'a', '=', '=' ];
bool empty() { return impl.length == 0; }
ubyte front() { return impl[0]; }
void popFront() { impl = impl[1 .. $]; }
size_t length() { return impl.length; }
}
struct OutputRange
{
ubyte[] result;
void put(ubyte b) { result ~= b; }
}
InputRange ir;
OutputRange or;
assert(Base64.decode(ir, or) == 1);
assert(or.result == "x"); // fails, output is "y"
}
--