mirror of
https://github.com/jarun/nnn.git
synced 2024-12-01 02:49:44 +00:00
Fix #978: store nanosec field
This commit is contained in:
parent
002758063e
commit
3ab8bf1c16
32
src/nnn.c
32
src/nnn.c
|
@ -249,6 +249,7 @@ typedef unsigned long long ulong_t;
|
||||||
typedef struct entry {
|
typedef struct entry {
|
||||||
char *name;
|
char *name;
|
||||||
time_t t;
|
time_t t;
|
||||||
|
uint_t t_nsec; /* Enough to hold nanosec */
|
||||||
off_t size;
|
off_t size;
|
||||||
blkcnt_t blocks; /* number of 512B blocks allocated */
|
blkcnt_t blocks; /* number of 512B blocks allocated */
|
||||||
mode_t mode;
|
mode_t mode;
|
||||||
|
@ -2515,6 +2516,11 @@ static int entrycmp(const void *va, const void *vb)
|
||||||
return 1;
|
return 1;
|
||||||
if (pb->t < pa->t)
|
if (pb->t < pa->t)
|
||||||
return -1;
|
return -1;
|
||||||
|
/* If sec matches, comare nsec */
|
||||||
|
if (pb->t_nsec > pa->t_nsec)
|
||||||
|
return 1;
|
||||||
|
if (pb->t_nsec < pa->t_nsec)
|
||||||
|
return -1;
|
||||||
} else if (cfg.sizeorder) {
|
} else if (cfg.sizeorder) {
|
||||||
if (pb->size > pa->size)
|
if (pb->size > pa->size)
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -5096,9 +5102,29 @@ static int dentfill(char *path, struct entry **ppdents)
|
||||||
off += dentp->nlen;
|
off += dentp->nlen;
|
||||||
|
|
||||||
/* Copy other fields */
|
/* Copy other fields */
|
||||||
dentp->t = ((cfg.timetype == T_MOD)
|
if (cfg.timetype == T_MOD) {
|
||||||
? sb.st_mtime
|
dentp->t = sb.st_mtime;
|
||||||
: ((cfg.timetype == T_ACCESS) ? sb.st_atime : sb.st_ctime));
|
#ifdef __APPLE__
|
||||||
|
dentp->t_nsec = (uint_t)sb.st_mtimespec.tv_nsec;
|
||||||
|
#else
|
||||||
|
dentp->t_nsec = (uint_t)sb.st_mtim.tv_nsec;
|
||||||
|
#endif
|
||||||
|
} else if (cfg.timetype == T_ACCESS) {
|
||||||
|
dentp->t = sb.st_atime;
|
||||||
|
#ifdef __APPLE__
|
||||||
|
dentp->t_nsec = (uint_t)sb.st_atimespec.tv_nsec;
|
||||||
|
#else
|
||||||
|
dentp->t_nsec = (uint_t)sb.st_atim.tv_nsec;
|
||||||
|
#endif
|
||||||
|
} else {
|
||||||
|
dentp->t = sb.st_ctime;
|
||||||
|
#ifdef __APPLE__
|
||||||
|
dentp->t_nsec = (uint_t)sb.st_ctimespec.tv_nsec;
|
||||||
|
#else
|
||||||
|
dentp->t_nsec = (uint_t)sb.st_ctim.tv_nsec;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
#if !(defined(__sun) || defined(__HAIKU__))
|
#if !(defined(__sun) || defined(__HAIKU__))
|
||||||
if (!flags && dp->d_type == DT_LNK) {
|
if (!flags && dp->d_type == DT_LNK) {
|
||||||
/* Do not add sizes for links */
|
/* Do not add sizes for links */
|
||||||
|
|
Loading…
Reference in a new issue