Index: ossp-pkg/shtool/ChangeLog RCS File: /v/ossp/cvs/ossp-pkg/shtool/ChangeLog,v rcsdiff -q -kk '-r1.242' '-r1.243' -u '/v/ossp/cvs/ossp-pkg/shtool/ChangeLog,v' 2>/dev/null --- ChangeLog 2008/09/21 15:01:15 1.242 +++ ChangeLog 2008/12/23 19:12:05 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 ] Index: ossp-pkg/shtool/sh.mkln RCS File: /v/ossp/cvs/ossp-pkg/shtool/sh.mkln,v rcsdiff -q -kk '-r1.25' '-r1.26' -u '/v/ossp/cvs/ossp-pkg/shtool/sh.mkln,v' 2>/dev/null --- sh.mkln 2008/06/06 12:15:11 1.25 +++ sh.mkln 2008/12/23 19:12:05 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/;'`