From 5bf94b5e36d50dc3340a360df5d774a0ebff8ef2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Tue, 31 Oct 2000 15:29:34 +0100 Subject: [PATCH] Improved symlink handling. Rev: NT/tools/lib.pike:1.16 --- NT/tools/lib.pike | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/NT/tools/lib.pike b/NT/tools/lib.pike index b98555988c..46a5d26dcb 100644 --- a/NT/tools/lib.pike +++ b/NT/tools/lib.pike @@ -12,6 +12,16 @@ void exece(string cmd, array(string) args) string fixpath(string s) { string mnt=getenv("NTMOUNT"); + array st; + + while ((st = file_stat(s, 1)) && (st[1] == -3)) { + string new_s = readlink(s); + if (new_s == s) { + werror(sprintf("%O is a symlink to itself!\n", s)); + exit(1); + } + s = new_s; + } if(mnt && strlen(mnt)) s=replace(s,mnt,""); return replace(s,"/","\\"); } @@ -366,7 +376,6 @@ string getntenv(string var) int do_cmd(string *cmd, mixed|void filter) { - werror("DOING "+cmd*" "+"\n"); return silent_do_cmd(cmd,filter); } -- GitLab