From: simonm Date: Thu, 18 Feb 1999 16:33:09 +0000 (+0000) Subject: [project @ 1999-02-18 16:33:09 by simonm] X-Git-Tag: Approximately_9120_patches~6533 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;ds=sidebyside;h=822520d37c7faf4e461e10024578d3f9e04cd5ec;hp=5b50d6522143fc2f4de7d1dc55b2441565f13654;p=ghc-hetmet.git [project @ 1999-02-18 16:33:09 by simonm] Allow -f flag to override existing symlink tree. --- diff --git a/glafp-utils/lndir/lndir.c b/glafp-utils/lndir/lndir.c index 0c76558..27ae80e 100644 --- a/glafp-utils/lndir/lndir.c +++ b/glafp-utils/lndir/lndir.c @@ -82,6 +82,8 @@ int ignore_links = 0; /* -ignorelinks */ char *rcurdir; char *curdir; +int force=0; + void quit ( #if NeedVarargsPrototypes @@ -284,15 +286,22 @@ int rel; /* if true, prepend "../" to fn before using */ } if (symlen >= 0) { - /* Link exists in new tree. Print message if it doesn't match. */ - if (!equivalent (basesymlen>=0 ? basesym : buf, symbuf)) - msg ("%s: %s", dp->d_name, symbuf); - } else { - if (symlink (basesymlen>=0 ? basesym : buf, dp->d_name) < 0) + if (!equivalent (basesymlen>=0 ? basesym : buf, symbuf)) { + if (force) { + unlink(dp->d_name); + if (symlink (basesymlen>=0 ? basesym : buf, dp->d_name) < 0) mperror (dp->d_name); + } else { + /* Link exists in new tree. Print message if it doesn't match. */ + msg ("%s: %s", dp->d_name, symbuf); + } + } + } else { + if (symlink (basesymlen>=0 ? basesym : buf, dp->d_name) < 0) + mperror (dp->d_name); } } - + closedir (df); return 0; } @@ -305,7 +314,6 @@ char **av; char *prog_name = av[0]; char *fn, *tn; struct stat fs, ts; - int force=0; while (++av, --ac) { if (strcmp(*av, "-silent") == 0)