OSSP CVS Master Repository
http://cvs.ossp.org/
____________________________________________________________________________
Server: cvs.ossp.org Name: Ralf S. Engelschall
Root: /v/ossp/cvs Email: rse@ossp.org
Module: ossp-pkg Date: 23-Dec-2008 20:12:06
Branch: HEAD Handle: 2008122319120500
Modified files:
ossp-pkg/shtool ChangeLog sh.mkln
Log:
Fix "mkln -s /foo /foo/bar" (achieving a "bar -> ." symlink)
Summary:
Revision Changes Path
1.243 +3 -0 ossp-pkg/shtool/ChangeLog
1.26 +9 -4 ossp-pkg/shtool/sh.mkln
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: ossp-pkg/shtool/ChangeLog
============================================================================
$ cvs diff -u -r1.242 -r1.243 ChangeLog
--- ossp-pkg/shtool/ChangeLog 21 Sep 2008 15:01:15 -0000 1.242
+++ ossp-pkg/shtool/ChangeLog 23 Dec 2008 19:12:05 -0000 1.243
@@ -11,6 +11,9 @@
Changes between 2.0.8 and 2.0.9 (18-Jul-2008 to xx-XXX-2008):
+ *) Fix "mkln -s /foo /foo/bar" (achieving a "bar -> ." symlink)
+ [Ralf S. Engelschall]
+
*) Provide SHTOOL_ROTATE_LOGFILE environment variable
to "shtool rotate" prolog/epilog commands.
[Bill Campbell <bill@celestial.com>]
@@ .
patch -p0 <<'@@ .'
Index: ossp-pkg/shtool/sh.mkln
============================================================================
$ cvs diff -u -r1.25 -r1.26 sh.mkln
--- ossp-pkg/shtool/sh.mkln 6 Jun 2008 12:15:11 -0000 1.25
+++ ossp-pkg/shtool/sh.mkln 23 Dec 2008 19:12:05 -0000 1.26
@@ -114,14 +114,14 @@
dstdir=""
else
while [ ".$srcdir" != . ] && [ ".$dstdir" != . ]; do
- presrc=`echo $srcdir | sed -e 's;^\([^/]*\)/.*;\1;'`
- predst=`echo $dstdir | sed -e 's;^\([^/]*\)/.*;\1;'`
+ presrc=`echo $srcdir | sed -e 's;^\([^/][^/]*\)/.*;\1;'`
+ predst=`echo $dstdir | sed -e 's;^\([^/][^/]*\)/.*;\1;'`
if [ ".$presrc" != ".$predst" ]; then
break
fi
prefix="$prefix$presrc/"
- srcdir=`echo $srcdir | sed -e 's;^[^/]*/*;;'`
- dstdir=`echo $dstdir | sed -e 's;^[^/]*/*;;'`
+ srcdir=`echo $srcdir | sed -e 's;^[^/][^/]*/*;;'`
+ dstdir=`echo $dstdir | sed -e 's;^[^/][^/]*/*;;'`
done
fi
@@ -165,6 +165,11 @@
fi
fi
+ # special case (usually on "mkln -s /foo /foo/bar", etc)
+ if [ ".$srcpre$srcdir$srcbase" = . ]; then
+ srcdir="."
+ fi
+
# now finalize source and destination directory paths
srcdir=`echo $srcdir | sed -e 's;\([^/]\)$;\1/;'`
dstdir=`echo $dstdir | sed -e 's;\([^/]\)$;\1/;'`
@@ .