aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coreutils/ls.c2
-rw-r--r--include/platform.h5
2 files changed, 7 insertions, 0 deletions
diff --git a/coreutils/ls.c b/coreutils/ls.c
index c42f5f3d2..6080f59b6 100644
--- a/coreutils/ls.c
+++ b/coreutils/ls.c
@@ -886,9 +886,11 @@ static int sortcmp(const void *a, const void *b)
if (sort_opts == SORT_DIR) {
dif = S_ISDIR(d2->dn_mode) - S_ISDIR(d1->dn_mode);
} else
+#ifdef HAVE_STRVERSCMP && HAVE_STRVERSCMP == 1
if (sort_opts == SORT_VERSION) {
dif = strverscmp(d1->name, d2->name);
} else
+#endif
if (sort_opts == SORT_EXT) {
dif = strcmp(strchrnul(d1->name, '.'), strchrnul(d2->name, '.'));
}
diff --git a/include/platform.h b/include/platform.h
index 429220b0d..d6b748844 100644
--- a/include/platform.h
+++ b/include/platform.h
@@ -348,6 +348,7 @@ typedef unsigned smalluint;
#define HAVE_STRCHRNUL 1
#define HAVE_STRSEP 1
#define HAVE_STRSIGNAL 1
+#define HAVE_STRVERSCMP 1
#define HAVE_VASPRINTF 1
#define HAVE_XTABS 1
#define HAVE_MNTENT_H 1
@@ -372,6 +373,7 @@ typedef unsigned smalluint;
# undef HAVE_STRCHRNUL
# undef HAVE_STRSEP
# undef HAVE_STRSIGNAL
+# undef HAVE_STRVERSCMP
# undef HAVE_VASPRINTF
# undef HAVE_NET_ETHERNET_H
#endif
@@ -389,18 +391,21 @@ typedef unsigned smalluint;
# undef HAVE_PTSNAME_R
# undef HAVE_SYS_STATFS_H
# undef HAVE_SIGHANDLER_T
+# undef HAVE_STRVERSCMP
# undef HAVE_XTABS
# undef HAVE_DPRINTF
#endif
#if defined(__digital__) && defined(__unix__)
# undef HAVE_STPCPY
+# undef HAVE_STRVERSCMP
#endif
#if defined(ANDROID)
# undef HAVE_DPRINTF
# undef HAVE_STPCPY
# undef HAVE_STRCHRNUL
+# undef HAVE_STRVERSCMP
# undef HAVE_NET_ETHERNET_H
#endif