diff options
author | julien.hamaide <julien.hamaide@fishingcactus.com> | 2012-02-09 09:36:50 +0100 |
---|---|---|
committer | julien.hamaide <julien.hamaide@fishingcactus.com> | 2012-02-09 09:36:50 +0100 |
commit | 04a20ae1ab0d2c2c1e6954614b7d0da1e71ae485 (patch) | |
tree | caf3926e49a3845e1139368d66ab4541d74c565f | |
parent | 60be52255a30b28ab956b17998b52d8985dc30d7 (diff) |
Fix readdir()
-rw-r--r-- | src/library.js | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/library.js b/src/library.js index 6385507c..1fd05f40 100644 --- a/src/library.js +++ b/src/library.js @@ -512,16 +512,24 @@ LibraryManager.library = { if (loc < -2 || loc >= entries) { {{{ makeSetValue('result', '0', '0', 'i8*') }}} } else { - var name, inode; + var name, inode, type; if (loc === -2) { name = '.'; inode = 1; // Really undefined. + type = 4; //DT_DIR } else if (loc === -1) { name = '..'; inode = 1; // Really undefined. + type = 4; //DT_DIR } else { + var object; name = stream.contents[loc]; - inode = stream.object.contents[name].inodeNumber; + object = stream.object.contents[name]; + inode = object.inodeNumber; + type = object.isDevice ? 2 // DT_CHR, character device. + : object.isFolder ? 4 // DT_DIR, directory. + : object.link !== undefined ? 10 // DT_LNK, symbolic link. + : 8; // DT_REG, regular file. } stream.position++; var offsets = ___dirent_struct_layout; @@ -532,10 +540,6 @@ LibraryManager.library = { {{{ makeSetValue('entry + offsets.d_name', 'i', 'name.charCodeAt(i)', 'i8') }}} } {{{ makeSetValue('entry + offsets.d_name', 'i', '0', 'i8') }}} - var type = stream.object.isDevice ? 2 // DT_CHR, character device. - : stream.object.isFolder ? 4 // DT_DIR, directory. - : stream.object.link !== undefined ? 10 // DT_LNK, symbolic link. - : 8; // DT_REG, regular file. {{{ makeSetValue('entry', 'offsets.d_type', 'type', 'i8') }}} {{{ makeSetValue('result', '0', 'entry', 'i8*') }}} } |