#
 module_name()
 {
-       name=$(GIT_CONFIG=.gitmodules git-config --get-regexp '^submodule\..*\.path$' "$1" |
-       sed -nre 's/^submodule\.(.+)\.path .+$/\1/p')
+       # Do we have "submodule.<something>.path = $1" defined in .gitmodules file?
+       re=$(printf '%s' "$1" | sed -e 's/\([^a-zA-Z0-9_]\)/\\\1/g')
+       name=$( GIT_CONFIG=.gitmodules \
+               git config --get-regexp '^submodule\..*\.path$' |
+               sed -n -e 's|^submodule\.\(.*\)\.path '"$re"'$|\1|p' )
        test -z "$name" &&
        die "No submodule mapping found in .gitmodules for path '$path'"
        echo "$name"
        test -e "$path" &&
        die "'$path' already exists"
 
-       git-ls-files --error-unmatch "$path" > /dev/null 2>&1 &&
+       git ls-files --error-unmatch "$path" > /dev/null 2>&1 &&
        die "'$path' already exists in the index"
 
        module_clone "$path" "$repo" || exit
        do
                # Skip already registered paths
                name=$(module_name "$path") || exit
-               url=$(git-config submodule."$name".url)
+               url=$(git config submodule."$name".url)
                test -z "$url" || continue
 
-               url=$(GIT_CONFIG=.gitmodules git-config submodule."$name".url)
+               url=$(GIT_CONFIG=.gitmodules git config submodule."$name".url)
                test -z "$url" &&
                die "No url found for submodule path '$path' in .gitmodules"
 
-               git-config submodule."$name".url "$url" ||
+               git config submodule."$name".url "$url" ||
                die "Failed to register url for submodule path '$path'"
 
                say "Submodule '$name' ($url) registered for path '$path'"
        while read mode sha1 stage path
        do
                name=$(module_name "$path") || exit
-               url=$(git-config submodule."$name".url)
+               url=$(git config submodule."$name".url)
                if test -z "$url"
                then
                        # Only mention uninitialized submodules when its
                        subsha1=
                else
                        subsha1=$(unset GIT_DIR && cd "$path" &&
-                               git-rev-parse --verify HEAD) ||
+                               git rev-parse --verify HEAD) ||
                        die "Unable to find current revision in submodule path '$path'"
                fi
 
        revname=$( (
                unset GIT_DIR &&
                cd "$1" && {
-                       git-describe "$2" 2>/dev/null ||
-                       git-describe --tags "$2" 2>/dev/null ||
-                       git-describe --contains --tags "$2"
+                       git describe "$2" 2>/dev/null ||
+                       git describe --tags "$2" 2>/dev/null ||
+                       git describe --contains --tags "$2"
                }
        ) )
        test -z "$revname" || revname=" ($revname)"
        while read mode sha1 stage path
        do
                name=$(module_name "$path") || exit
-               url=$(git-config submodule."$name".url)
+               url=$(git config submodule."$name".url)
                if test -z "url" || ! test -d "$path"/.git
                then
                        say "-$sha1 $path"
                        continue;
                fi
-               revname=$(unset GIT_DIR && cd "$path" && git-describe --tags $sha1)
-               set_name_rev "$path" $"sha1"
+               set_name_rev "$path" "$sha1"
                if git diff-files --quiet -- "$path"
                then
                        say " $sha1 $path$revname"
                else
                        if test -z "$cached"
                        then
-                               sha1=$(unset GIT_DIR && cd "$path" && git-rev-parse --verify HEAD)
-                               set_name_rev "$path" $"sha1"
+                               sha1=$(unset GIT_DIR && cd "$path" && git rev-parse --verify HEAD)
+                               set_name_rev "$path" "$sha1"
                        fi
                        say "+$sha1 $path$revname"
                fi
 ,,1,,)
        modules_update "$@"
        ;;
-,,,1,*)
+,,,*,*)
        modules_list "$@"
        ;;
 *)