fallback file time getting method
This commit is contained in:
parent
81e09956d3
commit
2939395906
@ -359,17 +359,22 @@ char path_type(B path) {
|
|||||||
thrM("Unexpected file type");
|
thrM("Unexpected file type");
|
||||||
}
|
}
|
||||||
|
|
||||||
B get_timespec(struct timespec ts) {
|
|
||||||
return m_f64(ts.tv_sec + ts.tv_nsec*1e-9);
|
#if (_POSIX_C_SOURCE >= 200809L) && defined(st_mtime)
|
||||||
}
|
B get_timespec(struct timespec ts) { return m_f64(ts.tv_sec + ts.tv_nsec*1e-9); }
|
||||||
|
#define GET_TIME(C) get_timespec(s.st_##C##tim);
|
||||||
|
#else
|
||||||
|
#define GET_TIME(C) m_f64(s.st_##C##time);
|
||||||
|
#endif
|
||||||
|
|
||||||
B path_info(B path, i32 mode) {
|
B path_info(B path, i32 mode) {
|
||||||
struct stat s;
|
struct stat s;
|
||||||
int r = path_stat(&s, path);
|
int r = path_stat(&s, path);
|
||||||
if (r==-1) thrF("Failed to access file \"%R\": %S", path, strerror(errno));
|
if (r==-1) thrF("Failed to access file \"%R\": %S", path, strerror(errno));
|
||||||
dec(path);
|
dec(path);
|
||||||
if (mode==0) return get_timespec(s.st_ctim);
|
if (mode==0) return GET_TIME(c);
|
||||||
if (mode==1) return get_timespec(s.st_atim);
|
if (mode==1) return GET_TIME(a);
|
||||||
if (mode==2) return get_timespec(s.st_mtim);
|
if (mode==2) return GET_TIME(m);
|
||||||
if (mode==3) return m_f64(s.st_size);
|
if (mode==3) return m_f64(s.st_size);
|
||||||
thrM("Unknown path_info mode");
|
thrM("Unknown path_info mode");
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user