aboutsummaryrefslogtreecommitdiff
path: root/src/library.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/library.js')
-rw-r--r--src/library.js16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/library.js b/src/library.js
index 86c499a7..7eb26461 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*') }}}
}