diff options
author | Anthony Pesch <inolen@gmail.com> | 2013-08-13 20:18:33 -0700 |
---|---|---|
committer | Anthony Pesch <inolen@gmail.com> | 2013-08-13 20:18:33 -0700 |
commit | 68dfca4906a5c33a66f3c8cdf7850de970c985bd (patch) | |
tree | 616d9345f51d7e437f39ff9c2215635763cd95b9 /src/library_fs.js | |
parent | b639ed59378df54fc0513fb00ac97d0678f8ee6e (diff) |
- made FS.readdir easier to use
- tightened up exported node and stream ops for each type
Diffstat (limited to 'src/library_fs.js')
-rw-r--r-- | src/library_fs.js | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/library_fs.js b/src/library_fs.js index 9c83fcad..c9aa9900 100644 --- a/src/library_fs.js +++ b/src/library_fs.js @@ -730,6 +730,9 @@ mergeInto(LibraryManager.library, { }); // use a custom read function stream_ops.read = function(stream, buffer, offset, length, position) { + if (!FS.forceLoadFile(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } var contents = stream.node.contents; var size = Math.min(contents.length - position, length); if (contents.slice) { // normal array @@ -1035,7 +1038,7 @@ mergeInto(LibraryManager.library, { FS.hashRemoveNode(old_node); // do the underlying fs rename try { - old_node.node_ops.rename(old_node, new_dir, new_name); + old_dir.node_ops.rename(old_node, new_dir, new_name); } catch (e) { throw e; } finally { @@ -1062,6 +1065,14 @@ mergeInto(LibraryManager.library, { parent.node_ops.rmdir(parent, name); FS.destroyNode(node); }, + readdir: function(path) { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + if (!node.node_ops.readdir) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + return node.node_ops.readdir(node); + }, unlink: function(path) { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; @@ -1280,12 +1291,6 @@ mergeInto(LibraryManager.library, { } return stream.stream_ops.llseek(stream, offset, whence); }, - readdir: function(stream) { - if (!stream.stream_ops.readdir) { - throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); - } - return stream.stream_ops.readdir(stream); - }, read: function(stream, buffer, offset, length, position) { if (length < 0 || position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); |