OSDN Git Service

Fixed a syntax error.
[portsreinstall/current.git] / lib / libdatabase_query.sh
index 807ee2a..4ced7ce 100644 (file)
@@ -506,11 +506,15 @@ 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 tmpflag_exists put_blankline
+       local list pkgnamedb flag_filter_skip_unchanged flag_filter_only_target flag_negative_listdb tmpflag_exists put_blankline origin matches 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
        list=$1
        pkgnamedb=$2
        flag_filter_skip_unchanged=$3
        flag_filter_only_target=$4
+       flag_negative_listdb=$5
        tmpflag_exists=${TMPDIR}/database_query_show_single_list::exists_item
        if [ `cat "${DBDIR}/$list" 2> /dev/null | wc -l` -eq 0 ]
        then
@@ -539,9 +543,20 @@ database_query_show_single_list ()
        [ -n "$put_blankline" ] && message_echo
        while read origin
        do
-               [ -n "$flag_filter_skip_unchanged" -a $opt_skip_unchanged = yes \
-                       -a ! -e "${DBDIR}/requires/$origin/$flag_filter_skip_unchanged" ] \
-                       && continue
+               [ -n "$flag_negative_listdb" ] && grep -Fx "$origin" "${DBDIR}/$flag_negative_listdb" 2> /dev/null && continue
+               if [ -n "$flag_filter_skip_unchanged" -a $opt_skip_unchanged = yes ]
+               then
+                       matches=no
+                       for flag in $flag_filter_skip_unchanged
+                       do
+                               if [ -e "${DBDIR}/requires/$origin/$flag" ]
+                               then
+                                       matches=yes
+                                       break
+                               fi
+                       done
+                       [ $matches = no ] && continue
+               fi
                if [ -n "$flag_filter_only_target" ]
                then
                        database_query_get_target_attributes currentorigin "$origin"
@@ -622,13 +637,14 @@ database_query_show_list_moved ()
 # ============= Actual operations of "show" command for a single list =============
 database_query_show_single_list_exec ()
 {
-       local subject deptag level dbsuffix flag_filter_skip_unchanged flag_filter_only_target pkgnamedb
+       local subject deptag level dbsuffix flag_filter_skip_unchanged flag_filter_only_target flag_negative_listdb pkgnamedb
        subject=$1
        deptag=$2
        level=$3
        dbsuffix=$deptag.$level
        flag_filter_skip_unchanged=
        flag_filter_only_target=
+       flag_negative_listdb=
        pkgnamedb='moved_from obsolete initial'
        case $subject in
        todo )
@@ -654,8 +670,9 @@ database_query_show_single_list_exec ()
                message_dependency_scope "$deptag" "$level"
                message_echo
                list=todo_after_requirements_succeed.$dbsuffix.list
-               flag_filter_skip_unchanged=necessary_upgrade.$dbsuffix
+               flag_filter_skip_unchanged="necessary_upgrade.$dbsuffix necessary_upgrade_completed.$dbsuffix"
                flag_filter_only_target=y
+               flag_negative_listdb=leaf_ports_to_delete.unselected
                ;;
        resolved )
                message_echo "The following ports had problems which have been manually resolved:"
@@ -763,7 +780,7 @@ database_query_show_single_list_exec ()
                ;;
        esac
        database_query_show_single_list "$list" "$pkgnamedb" \
-               "$flag_filter_skip_unchanged" "$flag_filter_only_target"
+               "$flag_filter_skip_unchanged" "$flag_filter_only_target" "$flag_negative_listdb"
 }
 
 # ============= Check whether a port is registered in a list =============