]> git.phdru.name Git - dotfiles.git/blobdiff - .shellrc
.shellrc: remove clo aliases - clear is called in .logout
[dotfiles.git] / .shellrc
index 253d4347d579d3e0804d3a210500983fda3cdaf0..a11597f3a8c24ba0bec7cdce8b132f1ec8b2d4b2 100644 (file)
--- a/.shellrc
+++ b/.shellrc
@@ -68,7 +68,6 @@ if test -n "$BASH_VERSION"; then
    [ "`type -t mc`" = alias ] && unalias mc
 
    back() { cd - "$@"; }
-   clo() { clear; logout; }
    functions() { typeset -f "$@"; }
    j() { jobs; }
 
@@ -112,55 +111,37 @@ if test -n "$BASH_VERSION"; then
          ! has_completion $cmd && complete -A hostname $cmd
    done
 
-   if has_completion wget; then
-      _wget_completion_loader() {
-         _completion_loader wget
-         complete -F _wget wget-m wget-wrapper ww
-         unset _wget_completion_loader
-         return 124
-      }
-      complete -F _wget_completion_loader wget-m wget-wrapper ww
-   fi
-
    for cmd in distribute ftp lftp r rsync \
       s scp ssh smbclient tcpdump tshark wireshark; do
          ! has_completion $cmd && complete -o default -A hostname $cmd;
    done
 
-   if has_completion rsync; then
-      _rsync_completion_loader() {
-         _completion_loader rsync
-         complete -F _rsync r
-         unset _rsync_completion_loader
-         return 124
-      }
-      complete -F _rsync_completion_loader r
-   fi
-
-   if has_completion ssh; then
-      _ssh_completion_loader() {
-         _completion_loader ssh
-         complete -F _ssh s
-         unset _ssh_completion_loader
-         return 124
-      }
-      complete -F _ssh_completion_loader s
-   fi
+   delegate_completion() {
+      local prog completion_f programs
+      prog="$1"
+      completion_f="$2"
+      shift; shift
+      programs="$@"
+      if has_completion "$prog"; then
+         eval "_${prog}_completion_loader() {
+            _completion_loader $prog
+            complete -F $completion_f $programs
+            unset _${prog}_completion_loader
+            return 124
+         }"
+         complete -F _"$prog"_completion_loader $programs
+      fi
+   }
 
-   if has_completion make; then
-      _make_completion_loader() {
-         _completion_loader make
-         complete -F _make m
-         unset _make_completion_loader
-         return 124
-      }
-      complete -F _make_completion_loader m
-   fi
+   delegate_completion make _make m
+   delegate_completion rsync _rsync r
+   delegate_completion ssh _ssh s
+   delegate_completion wget _wget wget-m wget-wrapper ww
 
-   unset has_completion
+   unset has_completion delegate_completion
 
    complete -A job bg fg j jobs wait
-   complete -A variable unset
+   complete -A variable -A function unset
 
    if [ -d "$HOME/lib/config" ]; then
       complete -W "`cd \"$HOME/lib/config\" && echo *`" include
@@ -174,16 +155,11 @@ if test -n "$BASH_VERSION"; then
 
 elif test -n "$KSH_VERSION" -o -n "$FCEDIT"; then
    back() { cd - "$@"; }
-   clo() { clear; exit; }
    j() { jobs; }
-
-else
-   clo() { clear; exit; }
 fi
 
 
 # clear history, clear screen and logout
-#chlo() { cd; unset HISTFILE; rm -f .sh_history; history -c; clo; }
 
 
 #Pwd() { pwd | sed "s/.*\/\(.*\)\/\(.*\)\/\(.*\)\/\(.*\)/...\/\2\/\3\/\4/"; }
@@ -208,6 +184,7 @@ KillAll() {
       kill "$1" `pidOf "$2"`
    fi
 }
+#chlo() { cd; unset HISTFILE; rm -f .sh_history; history -c; clear; logout || exit; }
 
 
 if test -x /usr/bin/git >/dev/null 2>&1; then