commit:     23bef71c094d245593d19dbe53b280fc6ee3b474
Author:     Sviatoslav Sydorenko <wk <AT> sydorenko <DOT> org <DOT> ua>
AuthorDate: Wed Oct  9 12:20:15 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Oct 11 05:18:07 2025 +0000
URL:        https://gitweb.gentoo.org/proj/gentoolkit.git/commit/?id=23bef71c

euse: Recognize capital letters in atom names

This fixes a bug [[1]] where `euse` would treat parts of atom names
with capital letters as versions and hit surprising code branches.

Closes: https://bugs.gentoo.org/941200
Signed-off-by: Sviatoslav Sydorenko <webknjaz <AT> redhat.com>
Part-of: https://github.com/gentoo/gentoolkit/pull/53
Closes: https://github.com/gentoo/gentoolkit/pull/53
Signed-off-by: Sam James <sam <AT> gentoo.org>

 bin/euse | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/bin/euse b/bin/euse
index f15a36c..369252b 100755
--- a/bin/euse
+++ b/bin/euse
@@ -294,7 +294,7 @@ get_useflags() {
        # Flip signs of use.mask (it's interpreted oppositely),
        ACTIVE_FLAGS[6]=$(reduce_incrementals_trump \
                $(cat $(traverse_profile "use.mask") | sed -re "/^#.*$/{d}") \
-                       | sed -re "s/(^| )-[^ ]*//g" -e "s/(^| )([a-z0-9])/ 
-\2/g")
+                       | sed -re "s/(^| )-[^ ]*//g" -e "s/(^| )([a-zA-Z0-9])/ 
-\2/g")
        ACTIVE_FLAGS[7]=$(reduce_incrementals \
                $(cat $(traverse_profile "use.force") \
                        | sed -re "/^#.*$/ {d}"))
@@ -965,7 +965,7 @@ fi
 # Environment:
 # PACKAGE - Package atom for which to remove flag
 scrub_use_flag() {
-       local atom_re="^[<>]?=?([a-z][\da-z/-]+[a-z])(-[0-9pr._*-]+)?"
+       local atom_re="^[<>]?=?([a-zA-Z][\da-zA-Z/-]+[a-zA-Z])(-[0-9pr._*-]+)?"
        local filename=${1}
        # Ignore leading - on flag
        local flag=${2#*-}
@@ -1024,7 +1024,7 @@ scrub_use_flag() {
 modify_package() {
        get_useflags
 
-       local atom_re="^[<>]?=?([a-z][0-9a-z/-]+[0-9a-z])(-[0-9pr._*-]+)?"
+       local 
atom_re="^[<>]?=?([a-zA-Z][0-9a-zA-Z/-]+[0-9a-zA-Z])(-[0-9pr._*-]+)?"
        local pkg=$(echo "${PACKAGE}" | sed -re "s/${atom_re}/\1/")
        local V=$(echo "${PACKAGE}" | sed -re "s/${atom_re}/\2/")
        local pkg_re="[<>]?=?${pkg}(-[\dpr._*-]+)?"

Reply via email to