From 2d0e3b12b18fe27e06d6e42eb934508609520d98 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sat, 11 Feb 2006 19:37:00 +0000 Subject: [PATCH] Added support for "ln" switch "-n" (no dereference). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16353 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/tests/add-ons/kernel/file_systems/fs_shell/fsh.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/tests/add-ons/kernel/file_systems/fs_shell/fsh.cpp b/src/tests/add-ons/kernel/file_systems/fs_shell/fsh.cpp index 77a16c79d0..b9d5769c25 100644 --- a/src/tests/add-ons/kernel/file_systems/fs_shell/fsh.cpp +++ b/src/tests/add-ons/kernel/file_systems/fs_shell/fsh.cpp @@ -1557,6 +1557,7 @@ do_link(int argc, char **argv) { bool force = false; bool symbolic = false; + bool dereference = true; // parse parameters int argi = 1; @@ -1578,6 +1579,9 @@ do_link(int argc, char **argv) case 's': symbolic = true; break; + case 'n': + dereference = false; + break; default: fprintf(stderr, "Unknown option `-%c'\n", arg[i]); return FS_EINVAL; @@ -1596,7 +1600,7 @@ do_link(int argc, char **argv) // check, if the the target is an existing directory struct my_stat st; char targetBuffer[B_PATH_NAME_LENGTH]; - status_t error = sys_rstat(true, -1, target, &st, true); + status_t error = sys_rstat(true, -1, target, &st, dereference); if (error == FS_OK) { if (MY_S_ISDIR(st.mode)) { // get source leaf @@ -1623,10 +1627,10 @@ do_link(int argc, char **argv) } // check, if the target exists - error = sys_rstat(true, -1, target, &st, true); + error = sys_rstat(true, -1, target, &st, false); if (error == FS_OK) { if (!force) { - fprintf(stderr, "Can't create link. `%s' is in the way.", target); + fprintf(stderr, "Can't create link. `%s' is in the way.\n", target); return FS_FILE_EXISTS; }