# HG changeset patch # User Christian Kamm # Date 1217345733 -7200 # Node ID 6bd99cc5eb0855cded7c204ea602cb8b987e917f # Parent 8b7cee241e91d6f7ebfc50e7e88c70ba7417955b Allow / as a path separator on Windows. diff -r 8b7cee241e91 -r 6bd99cc5eb08 dmd/root.c --- a/dmd/root.c Tue Jul 29 15:58:45 2008 +0200 +++ b/dmd/root.c Tue Jul 29 17:35:33 2008 +0200 @@ -323,12 +323,12 @@ namelen = strlen(name); f = (char *)mem.malloc(pathlen + 1 + namelen + 1); memcpy(f, path, pathlen); -#if linux + if (path[pathlen - 1] != '/') { f[pathlen] = '/'; pathlen++; } -#endif + #if _WIN32 if (path[pathlen - 1] != '\\' && path[pathlen - 1] != ':') { f[pathlen] = '\\'; @@ -486,14 +486,13 @@ int FileName::absolute(const char *name) { + return #if _WIN32 - return (*name == '\\') || - (*name == '/') || - (*name && name[1] == ':'); + (*name == '\\') || + (*name == '/') || + (*name && name[1] == ':') || #endif -#if linux - return (*name == '/'); -#endif + (*name == '/'); } /******************************** @@ -513,10 +512,10 @@ switch (*e) { case '.': return e + 1; -#if linux + case '/': break; -#endif + #if _WIN32 case '\\': case ':': @@ -569,10 +568,10 @@ { switch (*e) { -#if linux + case '/': return e + 1; -#endif + #if _WIN32 case '\\': case ':': @@ -606,10 +605,10 @@ if (n > str) { -#if linux + if (n[-1] == '/') n--; -#endif + #if _WIN32 if (n[-1] == '\\') n--; @@ -642,12 +641,12 @@ namelen = strlen(name); f = (char *)mem.malloc(pathlen + 1 + namelen + 1); memcpy(f, path, pathlen); -#if linux + if (path[pathlen - 1] != '/') { f[pathlen] = '/'; pathlen++; } -#endif + #if _WIN32 if (path[pathlen - 1] != '\\' && path[pathlen - 1] != ':') { f[pathlen] = '\\';