>From 60bcbf59525d311ae1840db15d0fb10f7f1b9ad4 Mon Sep 17 00:00:00 2001 From: Georgi Georgiev Date: Fri, 18 Feb 2011 22:58:38 +0900 Subject: [PATCH 1/1] Use proper version sorting if "sort" supports it This way 2.6.37-sfx1 will be sorted as older than 2.6.37.1-sfx1. Currently it shows as newer. --- util/grub-mkconfig_lib.in | 18 +++++++++++++++++- 1 files changed, 17 insertions(+), 1 deletions(-) diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in index 901b575..605299c 100644 --- a/util/grub-mkconfig_lib.in +++ b/util/grub-mkconfig_lib.in @@ -165,6 +165,22 @@ grub_file_is_not_garbage () return 0 } +sort_version() +{ + if [[ ${_sort_has_v:-undef} == "undef" ]]; then + if sort -V < /dev/null &>/dev/null; then + _sort_has_v=1 + else + _sort_has_v=0 + fi + fi + if [[ ${_sort_has_v} == 1 ]]; then + sort -V + else + sort -n + fi +} + version_test_numeric () { local a="$1" @@ -181,7 +197,7 @@ version_test_numeric () a="$b" b="$c" fi - if (echo "$a" ; echo "$b") | sort -n | head -n 1 | grep -qx "$b" ; then + if (echo "$a" ; echo "$b") | sort_version | head -n 1 | grep -qx "$b" ; then return 0 else return 1 -- 1.7.3.4