[libgpiod][PATCH] tools: replace alphasort() with versionsort()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>

With a high enough number of chips, gpiodetect currently sorts them
like this:

gpiochip0
gpiochip1
gpiochip10
gpiochip11
gpiochip12
gpiochip13
gpiochip14
gpiochip15
gpiochip16
gpiochip17
gpiochip18
gpiochip19
gpiochip2
gpiochip20
gpiochip21
gpiochip22
gpiochip23
gpiochip24
gpiochip25
gpiochip26
gpiochip3
gpiochip4
gpiochip5
gpiochip6
gpiochip7
gpiochip8
gpiochip9

Switching to using versionsort() instead of alphasort() makes it look
better and the order is more logical:

gpiochip0
gpiochip1
gpiochip2
gpiochip3
gpiochip4
gpiochip5
gpiochip6
gpiochip7
gpiochip8
gpiochip9
gpiochip10
gpiochip11
gpiochip12
gpiochip13
gpiochip14
gpiochip15
gpiochip16
gpiochip17
gpiochip18
gpiochip19
gpiochip20
gpiochip21
gpiochip22
gpiochip23
gpiochip24
gpiochip25
gpiochip26

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>
---
 configure.ac         | 2 +-
 tools/tools-common.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index 7d72c24..c1005a9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -119,7 +119,7 @@ AS_IF([test "x$with_tools" = xtrue],
 	AC_CHECK_FUNC([daemon], [], [FUNC_NOT_FOUND_TOOLS([daemon])])
 	AC_CHECK_FUNC([asprintf], [], [FUNC_NOT_FOUND_LIB([asprintf])])
 	AC_CHECK_FUNC([scandir], [], [FUNC_NOT_FOUND_LIB([scandir])])
-	AC_CHECK_FUNC([alphasort], [], [FUNC_NOT_FOUND_LIB([alphasort])])
+	AC_CHECK_FUNC([versionsort], [], [FUNC_NOT_FOUND_LIB([versionsort])])
 	AS_IF([test "x$with_gpioset_interactive" = xtrue],
 		[PKG_CHECK_MODULES([LIBEDIT], [libedit >= 3.1])])
 	])
diff --git a/tools/tools-common.c b/tools/tools-common.c
index e5f6fc1..64592d3 100644
--- a/tools/tools-common.c
+++ b/tools/tools-common.c
@@ -469,7 +469,7 @@ int all_chip_paths(char ***paths_ptr)
 	struct dirent **entries;
 	char **paths;
 
-	num_chips = scandir("/dev/", &entries, chip_dir_filter, alphasort);
+	num_chips = scandir("/dev/", &entries, chip_dir_filter, versionsort);
 	if (num_chips < 0)
 		die_perror("unable to scan /dev");
 
-- 
2.37.2




[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux