From 259fd3cdfb84a1beea4c1701f1c48706b19fb2b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Tue, 11 May 2004 00:26:22 +0000 Subject: [PATCH] open_from() now also supports absolute paths, in which case it will ignore the passed in directory. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7513 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kernel/boot/loader/vfs.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/kernel/boot/loader/vfs.cpp b/src/kernel/boot/loader/vfs.cpp index c3d7723911..b52ea320b0 100644 --- a/src/kernel/boot/loader/vfs.cpp +++ b/src/kernel/boot/loader/vfs.cpp @@ -583,7 +583,7 @@ write(int fd, const void *buffer, size_t bufferSize) int open(const char *name, int mode, ...) { - // we always start at the top + // we always start at the top (there is no notion of a current directory (yet?)) if (name[0] == '/') name++; @@ -601,8 +601,11 @@ open(const char *name, int mode, ...) int open_from(Directory *directory, const char *name, int mode) { - if (name[0] == '/') - return B_BAD_VALUE; + if (name[0] == '/') { + // ignore the directory and start from root if we are asked to do that + directory = gRoot; + name++; + } Node *node; if (get_node_for_path(directory, name, &node) < B_OK)