tools: replace alphasort() with versionsort()
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Mon, 3 Apr 2023 14:20:09 +0000 (16:20 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Tue, 4 Apr 2023 07:03:56 +0000 (09:03 +0200)
Sorting chip names with alphasort() results in gpiochip2 coming after
gpiochip19 as it only find the lexicographic order of strings. Switching
to using versionsort() makes it look better and the order is more logical
with the numbering being taken into account.

Reviewed-by: Kent Gibson <warthog618@gmail.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
configure.ac
tools/tools-common.c

index 7d72c247c389f9a2414766d81821b5f1a4e6db5c..c1005a9288f43588f760974de3ffef67f3e3f55d 100644 (file)
@@ -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])])
        ])
index e5f6fc1b221cbaa12a0cb554b3fcc8661bbf903a..64592d329c2f3270d6a7c1dbf35182abd6efad39 100644 (file)
@@ -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");