From bcd1485075aa72ba9418003f5cc27af2b049c51b Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sat, 10 Jun 2017 23:41:25 +1000 Subject: portability for sftp globbed ls sort by mtime Include replacement timespeccmp() for systems that lack it. Support time_t struct stat->st_mtime in addition to timespec stat->st_mtim, as well as unsorted fallback. --- sftp.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'sftp.c') diff --git a/sftp.c b/sftp.c index 001c6ed2d..67110f738 100644 --- a/sftp.c +++ b/sftp.c @@ -894,9 +894,15 @@ sglob_comp(const void *aa, const void *bb) #define NCMP(a,b) (a == b ? 0 : (a < b ? 1 : -1)) if (sort_flag & LS_NAME_SORT) return (rmul * strcmp(ap, bp)); - else if (sort_flag & LS_TIME_SORT) + else if (sort_flag & LS_TIME_SORT) { +#if defined(HAVE_STRUCT_STAT_ST_MTIM) return (rmul * timespeccmp(&as->st_mtim, &bs->st_mtim, <)); - else if (sort_flag & LS_SIZE_SORT) +#elif defined(HAVE_STRUCT_STAT_ST_MTIME) + return (rmul * NCMP(as->st_mtime, bs->st_mtime)); +#else + return rmul * 1; +#endif + } else if (sort_flag & LS_SIZE_SORT) return (rmul * NCMP(as->st_size, bs->st_size)); fatal("Unknown ls sort type"); -- cgit v1.2.3