mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-05 15:18:49 +00:00
Merge pull request #1471 from Platin21/feature/fix-odin-fmt
Feature/fix odin fmt
This commit is contained in:
@@ -7,6 +7,9 @@
|
|||||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||||
*.userprefs
|
*.userprefs
|
||||||
|
|
||||||
|
# For macOS
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
# Build results
|
# Build results
|
||||||
[Dd]ebug/
|
[Dd]ebug/
|
||||||
[Dd]ebugPublic/
|
[Dd]ebugPublic/
|
||||||
|
|||||||
@@ -296,6 +296,9 @@ foreign libc {
|
|||||||
@(link_name="readdir_r$INODE64") _unix_readdir_r :: proc(dirp: Dir, entry: ^Dirent, result: ^^Dirent) -> c.int ---
|
@(link_name="readdir_r$INODE64") _unix_readdir_r :: proc(dirp: Dir, entry: ^Dirent, result: ^^Dirent) -> c.int ---
|
||||||
@(link_name="fcntl") _unix_fcntl :: proc(fd: Handle, cmd: c.int, buf: ^byte) -> c.int ---
|
@(link_name="fcntl") _unix_fcntl :: proc(fd: Handle, cmd: c.int, buf: ^byte) -> c.int ---
|
||||||
|
|
||||||
|
@(link_name="rename") _unix_rename :: proc(old: cstring, new: cstring) -> c.int ---
|
||||||
|
@(link_name="remove") _unix_remove :: proc(path: cstring) -> c.int ---
|
||||||
|
|
||||||
@(link_name="fchmod") _unix_fchmod :: proc(fildes: Handle, mode: u16) -> c.int ---
|
@(link_name="fchmod") _unix_fchmod :: proc(fildes: Handle, mode: u16) -> c.int ---
|
||||||
|
|
||||||
@(link_name="malloc") _unix_malloc :: proc(size: int) -> rawptr ---
|
@(link_name="malloc") _unix_malloc :: proc(size: int) -> rawptr ---
|
||||||
@@ -412,6 +415,65 @@ is_path_separator :: proc(r: rune) -> bool {
|
|||||||
return r == '/'
|
return r == '/'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
is_file_handle :: proc(fd: Handle) -> bool {
|
||||||
|
s, err := _fstat(fd)
|
||||||
|
if err != ERROR_NONE {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return S_ISREG(cast(u32)s.mode)
|
||||||
|
}
|
||||||
|
|
||||||
|
is_file_path :: proc(path: string, follow_links: bool = true) -> bool {
|
||||||
|
s: OS_Stat
|
||||||
|
err: Errno
|
||||||
|
if follow_links {
|
||||||
|
s, err = _stat(path)
|
||||||
|
} else {
|
||||||
|
s, err = _lstat(path)
|
||||||
|
}
|
||||||
|
if err != ERROR_NONE {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return S_ISREG(cast(u32)s.mode)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
is_dir_handle :: proc(fd: Handle) -> bool {
|
||||||
|
s, err := _fstat(fd)
|
||||||
|
if err != ERROR_NONE {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return S_ISDIR(cast(u32)s.mode)
|
||||||
|
}
|
||||||
|
|
||||||
|
is_dir_path :: proc(path: string, follow_links: bool = true) -> bool {
|
||||||
|
s: OS_Stat
|
||||||
|
err: Errno
|
||||||
|
if follow_links {
|
||||||
|
s, err = _stat(path)
|
||||||
|
} else {
|
||||||
|
s, err = _lstat(path)
|
||||||
|
}
|
||||||
|
if err != ERROR_NONE {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return S_ISDIR(cast(u32)s.mode)
|
||||||
|
}
|
||||||
|
|
||||||
|
is_file :: proc {is_file_path, is_file_handle}
|
||||||
|
is_dir :: proc {is_dir_path, is_dir_handle}
|
||||||
|
|
||||||
|
|
||||||
|
rename :: proc(old: string, new: string) -> bool {
|
||||||
|
old_cstr := strings.clone_to_cstring(old, context.temp_allocator)
|
||||||
|
new_cstr := strings.clone_to_cstring(new, context.temp_allocator)
|
||||||
|
return _unix_rename(old_cstr, new_cstr) != -1
|
||||||
|
}
|
||||||
|
|
||||||
|
remove :: proc(path: string) -> bool {
|
||||||
|
path_cstr := strings.clone_to_cstring(path, context.temp_allocator)
|
||||||
|
return _unix_remove(path_cstr) != -1
|
||||||
|
}
|
||||||
|
|
||||||
@private
|
@private
|
||||||
_stat :: proc(path: string) -> (OS_Stat, Errno) {
|
_stat :: proc(path: string) -> (OS_Stat, Errno) {
|
||||||
|
|||||||
Reference in New Issue
Block a user