From: John Hodge Date: Sun, 27 Sep 2009 10:21:30 +0000 (+0800) Subject: Correctness Fix: Stuff speed, now parses CWD with the rest of the path to fix issues... X-Git-Tag: rel0.06~424 X-Git-Url: https://git.ucc.asn.au/?a=commitdiff_plain;h=6432df629daa6c6884b3ba4032497af44ed55d77;p=tpg%2Facess2.git Correctness Fix: Stuff speed, now parses CWD with the rest of the path to fix issues with relative paths --- diff --git a/Kernel/vfs/open.c b/Kernel/vfs/open.c index be7ebc3d..2eccac23 100644 --- a/Kernel/vfs/open.c +++ b/Kernel/vfs/open.c @@ -66,20 +66,10 @@ char *VFS_GetAbsPath(char *Path) strcpy(ret, cwd); ret[cwdLen] = '/'; strcpy(&ret[cwdLen+1], Path); - - // Pre-fill the slash positions - read = 1; slashNum = 0; - while( (pos = strpos( &ret[read], '/' )) != -1 && slashNum < MAX_PATH_SLASHES ) - { - read += pos+1; - slashOffsets[slashNum++] = read; - } - - baseLen = cwdLen+1; } // Remove . and .. - read = write = baseLen; // Cwd has already been parsed + read = write = 1; // Cwd has already been parsed for(; read < baseLen+pathLen; read = pos+1) { pos = strpos( &ret[read], '/' ); @@ -87,12 +77,12 @@ char *VFS_GetAbsPath(char *Path) if(pos == -1) pos = baseLen+pathLen; else pos += read; // Else, Adjust to absolute - Log("pos-read = %i", pos-read); + //Log("pos-read = %i", pos-read); // Check Length if(pos - read <= 2) { - Log("&ret[read] = '%s'", &ret[read]); + //Log("&ret[read] = '%s'", &ret[read]); // Current Dir "." if(strncmp(&ret[read], ".", pos-read) == 0) continue; // Parent ".."