about summary refs log tree commit diff
path: root/Config
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2001-10-16 13:07:17 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2001-10-16 13:07:17 +0000
commitfb8b49bcaef4ea6dba6df42b8f92fca3f81a24fd (patch)
tree704e1caa2c0ee956ae7c0e48d19e4a698615fbb5 /Config
parent8923b5ab554c1a64989e5193f09b6a72b7294b47 (diff)
downloadzsh-fb8b49bcaef4ea6dba6df42b8f92fca3f81a24fd.tar.gz
zsh-fb8b49bcaef4ea6dba6df42b8f92fca3f81a24fd.tar.xz
zsh-fb8b49bcaef4ea6dba6df42b8f92fca3f81a24fd.zip
Changes from 4.1 which need to be backported
Diffstat (limited to 'Config')
-rwxr-xr-xConfig/installfns.sh49
1 files changed, 28 insertions, 21 deletions
diff --git a/Config/installfns.sh b/Config/installfns.sh
index ec738e2d7..76d937413 100755
--- a/Config/installfns.sh
+++ b/Config/installfns.sh
@@ -2,32 +2,39 @@
 
 fndir=$DESTDIR$fndir
 
-$sdir_top/mkinstalldirs $fndir || exit 1;
+/bin/sh $sdir_top/mkinstalldirs $fndir || exit 1;
 
-# If the source directory is somewhere else, we need to force
-# the shell to expand it in that directory, then strip it off.
-install=
-for file in $FUNCTIONS_INSTALL; do
-  if test -f "$sdir/$file"; then
-    install="$install $file"
-  else
-    install="$install `echo '' $sdir/$file | sed -e \"s% $sdir/% %g\"`"
-  fi
-done
+allfuncs="`grep ' functions=.' ${dir_top}/config.modules |
+  sed -e '/^#/d' -e '/ link=no/d' -e 's/^.* functions=//'`"
 
-for file in $install; do
-  if test -f $sdir/$file; then
+allfuncs="`cd $sdir_top; echo ${allfuncs}`"
+
+# We now have a list of files, but we need to use `test -f' to check
+# (1) the glob got expanded (2) we are not looking at directories.
+for file in $allfuncs; do
+  if test -f $sdir_top/$file; then
+    case "$file" in
+      */CVS/*) continue;;
+    esac
     if test x$FUNCTIONS_SUBDIRS != x -a x$FUNCTIONS_SUBDIRS != xno; then
-      subfile="$file"
-      subdir="`echo $file | sed -e 's%/[^/]*$%%'`"
-      instdir="$fndir/$subdir"
+      case "$file" in
+      Completion/comp*)
+        subdir="`echo $file | sed -e 's%/[^/]*/[^/]*$%%'`"
+        instdir="$fndir/Completion"
+        ;;
+      Completion/*)
+        subdir="`echo $file | sed -e 's%/[^/]*/[^/]*$%%'`"
+        instdir="$fndir/$subdir"
+        ;;
+      *)
+        subdir="`echo $file | sed -e 's%/[^/]*$%%' -e 's%^Functions/%%'`"
+        instdir="$fndir/$subdir"
+        ;;
+      esac
     else
-      subfile="`echo $file | sed -e 's%^.*/%%'`"
       instdir="$fndir"
     fi
-    $sdir_top/mkinstalldirs $instdir || exit 1
-    $INSTALL_DATA $sdir/$file $instdir || exit 1
+    test -d $instdir || /bin/sh $sdir_top/mkinstalldirs $instdir || exit 1
+    $INSTALL_DATA $sdir_top/$file $instdir || exit 1
   fi
 done
-
-exit 0