Fixed async fs writes with length 0, it should fire the callback
This commit is contained in:
parent
d5214b3627
commit
9c7c6e93e1
10
lib/fs.js
10
lib/fs.js
@ -211,7 +211,15 @@ fs.write = function (fd, buffer, offset, length, position, callback) {
|
|||||||
offset = 0;
|
offset = 0;
|
||||||
length = buffer.length;
|
length = buffer.length;
|
||||||
}
|
}
|
||||||
if(!length) return;
|
|
||||||
|
if (!length) {
|
||||||
|
if (typeof callback == 'function') {
|
||||||
|
process.nextTick(function() {
|
||||||
|
callback(undefined, 0);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
binding.write(fd, buffer, offset, length, position, callback || noop);
|
binding.write(fd, buffer, offset, length, position, callback || noop);
|
||||||
};
|
};
|
||||||
|
@ -11,7 +11,7 @@ fs.open(fn, 'w', 0644, function (err, fd) {
|
|||||||
if (err) throw err;
|
if (err) throw err;
|
||||||
console.log('open done');
|
console.log('open done');
|
||||||
fs.write(fd, '', 0, 'utf8', function(err, written) {
|
fs.write(fd, '', 0, 'utf8', function(err, written) {
|
||||||
assert.fail('zero length write should not go through to callback');
|
assert.equal(0, written);
|
||||||
});
|
});
|
||||||
fs.write(fd, expected, 0, "utf8", function (err, written) {
|
fs.write(fd, expected, 0, "utf8", function (err, written) {
|
||||||
console.log('write done');
|
console.log('write done');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user