commit:     fd2d1bbb85fe0c19617b33f5ee6729b9fe936965
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Sep 21 13:55:00 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Sep 21 14:03:38 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fd2d1bbb

eapi7-ver.eclass: Optimize numeric comparison

 eclass/eapi7-ver.eclass | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/eclass/eapi7-ver.eclass b/eclass/eapi7-ver.eclass
index 4cba67f8491..ead9fac5e80 100644
--- a/eclass/eapi7-ver.eclass
+++ b/eclass/eapi7-ver.eclass
@@ -207,10 +207,10 @@ _ver_compare() {
        [[ 10#${a} -gt 10#${b} ]] && return 3
        [[ 10#${a} -lt 10#${b} ]] && return 1
 
-       an=${an}.; an=${an#*.}
-       bn=${bn}.; bn=${bn#*.}
-       while [[ -n ${an} && -n ${bn} ]]; do
+       while [[ ${an} == *.* && ${bn} == *.* ]]; do
                # Other components (PMS algorithm 3.3)
+               an=${an#*.}
+               bn=${bn#*.}
                a=${an%%.*}
                b=${bn%%.*}
                if [[ ${a} == 0* || ${b} == 0* ]]; then
@@ -223,11 +223,9 @@ _ver_compare() {
                        [[ ${a} -gt ${b} ]] && return 3
                        [[ ${a} -lt ${b} ]] && return 1
                fi
-               an=${an#*.}
-               bn=${bn#*.}
        done
-       [[ -n ${an} ]] && return 3
-       [[ -n ${bn} ]] && return 1
+       [[ ${an} == *.* ]] && return 3
+       [[ ${bn} == *.* ]] && return 1
 
        # Compare letter components (PMS algorithm 3.4)
        [[ ${al} > ${bl} ]] && return 3

Reply via email to