Hello community,

here is the log from the commit of package aaa_base for openSUSE:Factory
checked in at Tue Feb 22 15:58:05 CET 2011.



--------
--- aaa_base/aaa_base.changes   2011-02-18 17:42:27.000000000 +0100
+++ /mounts/work_src_done/STABLE/aaa_base/aaa_base.changes      2011-02-22 
13:39:37.000000000 +0100
@@ -1,0 +2,6 @@
+Tue Feb 22 13:37:46 CET 2011 - [email protected]
+
+- Work around colon as breaking character in tab completion
+- Allow arguments of command done by sudo to complete (bnc#673663)
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ aaa_base.spec ++++++
--- /var/tmp/diff_new_pack.HvBfwM/_old  2011-02-22 15:54:36.000000000 +0100
+++ /var/tmp/diff_new_pack.HvBfwM/_new  2011-02-22 15:54:36.000000000 +0100
@@ -21,7 +21,7 @@
 
 Name:           aaa_base
 Version:        11.4
-Release:        57
+Release:        58
 License:        GPLv2+
 Group:          System/Fhs
 Provides:       bin bootutls etc skeleng skelger 

++++++ aaa_base.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aaa_base/etc/profile.d/complete.bash 
new/aaa_base/etc/profile.d/complete.bash
--- old/aaa_base/etc/profile.d/complete.bash    2010-09-20 17:10:22.000000000 
+0200
+++ new/aaa_base/etc/profile.d/complete.bash    2011-02-22 13:37:17.000000000 
+0100
@@ -20,6 +20,7 @@
     local IFS=$'\n'
     local s x
     local -i o
+    local -i isdir=$1
 
     test ${#COMPREPLY[@]} -eq 0 && return 0
 
@@ -28,6 +29,7 @@
     #
     for ((o=0; o < ${#COMPREPLY[@]}; o++)) ; do
        if test ! -d "${COMPREPLY[$o]}" ; then
+           ((isdir == 0)) || continue
            COMPREPLY[$o]="${COMPREPLY[$o]%%/}"
            continue
        fi
@@ -37,7 +39,7 @@
     #
     # Escape spaces and braces in path names with `\'
     #
-    s="${COMP_WORDBREAKS// }"
+    s="${COMP_WORDBREAKS//[: ]}"
     s="${s//   }"
     s="${s//[\{\}()\[\]]}"
     s="${s}    (){}[]"
@@ -59,10 +61,25 @@
     local s g=0 x
     local IFS=$'\n'
     local -i o
+    local -i isdir=0
 
     shopt -q extglob && g=1
     test $g -eq 0 && shopt -s extglob
 
+    if [[ $COMP_WORDBREAKS =~ : && $COMP_LINE  =~ : ]] ; then
+       # Do not use plusdirs as there is a colon in the directory
+       # name(s) which will not work even if escaped with backslash.
+       compopt +o plusdirs
+       # Restore last argument without breaking at colon
+       if ((COMP_CWORD > 1)) ; then
+           IFS="${COMP_WORDBREAKS//:}"
+           COMP_WORDS=($COMP_LINE)
+           let COMP_CWORD=${#COMP_WORDS[@]}-1
+           c=${COMP_WORDS[COMP_CWORD]}
+           IFS=$'\n'
+       fi
+    fi
+
     case "$(complete -p ${1##*/} 2> /dev/null)" in
     mkdir)  ;;
     *)     s="-S/"  
@@ -79,15 +96,18 @@
     \$\{*\})   eval COMPREPLY=\(${c}\) ;;
     \$\{*)     COMPREPLY=($(compgen -v -P '${' -S '}'  -- ${c#??}))    ;;
     \$*)       COMPREPLY=($(compgen -v -P '$' $s       -- ${c#?}))     ;;
-    \~*/*)     COMPREPLY=($(compgen -d $s              -- "${c}"))     ;;
+    \~*/*)     COMPREPLY=($(compgen -d $s              -- "${c}"))
+               ((${#COMPREPLY[@]} == 0)) || let isdir++                ;;
     \~*)       COMPREPLY=($(compgen -u $s              -- "${c}"))     ;;
-    *\:*)
-                if [[ $COMP_WORDBREAKS =~ : ]] ; then
+    *\:*)      if [[ $COMP_WORDBREAKS =~ : ]] ; then
                    x=${c%"${c##*[^\\]:}"}
                    COMPREPLY=($(compgen -d $s          -- "${c}"))
-                   COMPREPLY=(${COMPREPLY[@]#"$x"})
-                fi                                                     ;;
-    *)         COMPREPLY=()                            # use bashdefault
+                   COMPREPLY=(${COMPREPLY[@]#"$x"})
+                   ((${#COMPREPLY[@]} == 0)) || let isdir++
+               fi
+               test $g -eq 0 && shopt -u extglob
+               return 0                                                ;;
+    *)         COMPREPLY=()                            # use (bash)default
                test $g -eq 0 && shopt -u extglob
                return 0                                                ;;
     esac
@@ -108,10 +128,11 @@
                fi
                COMPREPLY[o++]=${s#$x/}
            done
+           ((${#COMPREPLY[@]} == 0)) || let isdir++
        done
     fi
 
-    _compreply_
+    _compreply_ $isdir
 
     test $g -eq 0 && shopt -u extglob
     return 0
@@ -433,8 +454,12 @@
     local os="-h -K -k -L -l -V -v -b -E -H -P -S -i -s"
     local ox="-r -p -t -u"
     case "$c" in
-       -*) COMPREPLY=($(compgen -W "$os $ox" -- "$c")) ;;
-        *) COMPREPLY=($(PATH=/sbin:/usr/sbin:$PATH:/usr/local/sbin compgen -c 
-- "${c}"))
+       -*) COMPREPLY=($(compgen -W "$os $ox" -- "$c")) ;;
+       *)  if ((COMP_CWORD <= 1)) ; then
+               COMPREPLY=($(PATH=/sbin:/usr/sbin:$PATH:/usr/local/sbin compgen 
-c -- "${c}"))
+           else
+               COMPREPLY=()
+           fi
     esac
 }
 


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to