Mercurial > projects > ldc
changeset 429:6bd99cc5eb08
Allow / as a path separator on Windows.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Tue, 29 Jul 2008 17:35:33 +0200 |
parents | 8b7cee241e91 |
children | 120cb5ea9eea |
files | dmd/root.c |
diffstat | 1 files changed, 15 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- 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] = '\\';