commit:     b5feaf2444ae625f5756c7566042d28f81a2cda1
Author:     Kerin Millar <kfm <AT> plushkava <DOT> net>
AuthorDate: Wed May 22 05:54:12 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed May 22 16:27:00 2024 +0000
URL:        
https://gitweb.gentoo.org/proj/gentoo-functions.git/commit/?id=b5feaf24

Micro-optimise the eqatag() argument parsing loop

Signed-off-by: Kerin Millar <kfm <AT> plushkava.net>

 functions.sh | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/functions.sh b/functions.sh
index 98e7a6f..f965534 100644
--- a/functions.sh
+++ b/functions.sh
@@ -187,7 +187,7 @@ eoutdent()
 #
 eqatag()
 {
-       local arg argc json positional tag
+       local arg i json positional tag
 
        case ${genfun_has_jq} in
                0)
@@ -211,11 +211,14 @@ eqatag()
        if [ "$#" -eq 0 ]; then
                die "eqatag: no tag specified"
        fi
+       positional=0
        tag=$1
        shift
-       argc=$#
-       positional=0
+       i=0
        for arg; do
+               if [ "$(( i += 1 ))" -eq 1 ]; then
+                       set --
+               fi
                case ${arg} in
                        [!=/]*=?*)
                                if [ "${positional}" -eq 1 ]; then
@@ -234,7 +237,6 @@ eqatag()
                                _throw_invalid_args eqatag "${arg}"
                esac
        done
-       shift "${argc}"
        json=$(
                jq -cn '{
                        eqatag: {

Reply via email to