OSDN Git Service

Fixed a bug that unselected leaf ports were skipped in reinstalltion.
[portsreinstall/current.git] / lib / libdatabase_query.sh
index 743a568..4936b4a 100644 (file)
@@ -506,7 +506,7 @@ database_query_show_two_column_lists ()
 # ============= Output of "show" command for a single list =============
 database_query_show_single_list ()
 {
-       local list pkgnamedb flag_filter_skip_unchanged flag_filter_only_target flag_negative_listdb tmpflag_exists put_blankline origin matches flag pkg table
+       local list pkgnamedb flag_filter_skip_unchanged flag_filter_only_target flag_negative_listdb tmpflag_exists put_blankline origin matches_negative matches_positive flag pkg table
        local currentorigin_is_alll currentorigin_is_target currentorigin_is_requires_requirements
        local currentorigin_is_initial_requirements currentorigin_is_requires_dependents
        local currentorigin_is_initial_dependents currentorigin_is_requires_requirements_complement currentorigin_is_relevant
@@ -543,27 +543,28 @@ database_query_show_single_list ()
        [ -n "$put_blankline" ] && message_echo
        while read origin
        do
-               matches=no
+               matches_negative=no
                for negative_listdb in $flag_negative_listdb
                do
                        if grep -qFx "$origin" "${DBDIR}/$negative_listdb" 2> /dev/null
                        then
-                               matches=yes
+                               matches_negative=yes
                                break
                        fi
                done
-               [ $matches = no ] && continue
+               [ $matches_negative = yes ] && continue
                if [ -n "$flag_filter_skip_unchanged" -a $opt_skip_unchanged = yes ]
                then
+                       matches_positive=no
                        for flag in $flag_filter_skip_unchanged
                        do
                                if [ -e "${DBDIR}/requires/$origin/$flag" ]
                                then
-                                       matches=yes
+                                       matches_positive=yes
                                        break
                                fi
                        done
-                       [ $matches = no ] && continue
+                       [ $matches_positive = no ] && continue
                fi
                if [ -n "$flag_filter_only_target" ]
                then