🐛 fix unix.isdir & unix.isfile

This commit is contained in:
ValKmjolnir 2022-06-03 21:53:14 +08:00
parent c3a8e118f5
commit 4e6cd82ccb
2 changed files with 14 additions and 14 deletions

View File

@ -410,8 +410,8 @@ var unix=
dup2: func(fd0,fd1){die("not supported yet");}, dup2: func(fd0,fd1){die("not supported yet");},
exec: func(filename,argv,envp){die("not supported yet");}, exec: func(filename,argv,envp){die("not supported yet");},
waitpid: func(pid,nohang=0){return __builtin_waitpid;}, waitpid: func(pid,nohang=0){return __builtin_waitpid;},
isdir: func(path){return bits.u32_and(io.stat(path)[2],0x4000);}, # S_IFDIR 0x4000 isdir: func(path){return !!bits.u32_and(io.stat(path)[2],0x4000);}, # S_IFDIR 0x4000
isfile: func(path){return bits.u32_and(io.stat(path)[2],0x8000);}, # S_IFREG 0x8000 isfile: func(path){return !!bits.u32_and(io.stat(path)[2],0x8000);}, # S_IFREG 0x8000
opendir: func(path){return __builtin_opendir;}, opendir: func(path){return __builtin_opendir;},
readdir: func(handle){return __builtin_readdir;}, readdir: func(handle){return __builtin_readdir;},
closedir: func(handle){return __builtin_closedir;}, closedir: func(handle){return __builtin_closedir;},

View File

@ -338,16 +338,16 @@ var fstat=func(filename){
# carefully use it, all the calculations are based on integer. # carefully use it, all the calculations are based on integer.
var bits= var bits=
{ {
# xor # i32 xor
bitxor: func(a,b){return __builtin_i32xor(a,b); }, i32_xor: func(a,b){return __builtin_i32xor(a,b); },
# and # i32 and
bitand: func(a,b){return __builtin_i32and(a,b); }, i32_and: func(a,b){return __builtin_i32and(a,b); },
# or # i32 or
bitor: func(a,b){return __builtin_i32or(a,b); }, i32_or: func(a,b){return __builtin_i32or(a,b); },
# nand # i32 nand
bitnand: func(a,b){return __builtin_i32nand(a,b);}, i32_nand:func(a,b){return __builtin_i32nand(a,b);},
# not # i32 not
bitnot: func(a) {return __builtin_i32not(a); }, i32_not: func(a) {return __builtin_i32not(a); },
# u32 xor # u32 xor
u32_xor: func(a,b){return __builtin_u32xor(a,b); }, u32_xor: func(a,b){return __builtin_u32xor(a,b); },
# u32 and # u32 and
@ -410,8 +410,8 @@ var unix=
dup2: func(fd0,fd1){die("not supported yet");}, dup2: func(fd0,fd1){die("not supported yet");},
exec: func(filename,argv,envp){die("not supported yet");}, exec: func(filename,argv,envp){die("not supported yet");},
waitpid: func(pid,nohang=0){return __builtin_waitpid;}, waitpid: func(pid,nohang=0){return __builtin_waitpid;},
isdir: func(path){return bits.u32_and(io.stat(path)[2],0x4000);}, # S_IFDIR 0x4000 isdir: func(path){return !!bits.u32_and(io.stat(path)[2],0x4000);}, # S_IFDIR 0x4000
isfile: func(path){return bits.u32_and(io.stat(path)[2],0x8000);}, # S_IFREG 0x8000 isfile: func(path){return !!bits.u32_and(io.stat(path)[2],0x8000);}, # S_IFREG 0x8000
opendir: func(path){return __builtin_opendir;}, opendir: func(path){return __builtin_opendir;},
readdir: func(handle){return __builtin_readdir;}, readdir: func(handle){return __builtin_readdir;},
closedir: func(handle){return __builtin_closedir;}, closedir: func(handle){return __builtin_closedir;},