Mercurial > projects > ldc
comparison dmd/root.c @ 462:f7ba5f705d59
Path combining on Windows didn't work with / properly.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Sun, 03 Aug 2008 12:27:11 +0200 |
parents | 3dd9ae9ea708 |
children | f79bbd1d0b27 |
comparison
equal
deleted
inserted
replaced
461:2b28fd92bab8 | 462:f7ba5f705d59 |
---|---|
322 pathlen = strlen(path); | 322 pathlen = strlen(path); |
323 namelen = strlen(name); | 323 namelen = strlen(name); |
324 f = (char *)mem.malloc(pathlen + 1 + namelen + 1); | 324 f = (char *)mem.malloc(pathlen + 1 + namelen + 1); |
325 memcpy(f, path, pathlen); | 325 memcpy(f, path, pathlen); |
326 | 326 |
327 if (path[pathlen - 1] != '/') | 327 if ( |
328 path[pathlen - 1] != '/' | |
329 #if _WIN32 | |
330 && path[pathlen - 1] != '\\' && path[pathlen - 1] != ':' | |
331 #endif | |
332 ) | |
328 { f[pathlen] = '/'; | 333 { f[pathlen] = '/'; |
329 pathlen++; | 334 pathlen++; |
330 } | 335 } |
331 | 336 |
332 #if _WIN32 | |
333 if (path[pathlen - 1] != '\\' && path[pathlen - 1] != ':') | |
334 { f[pathlen] = '\\'; | |
335 pathlen++; | |
336 } | |
337 #endif | |
338 memcpy(f + pathlen, name, namelen + 1); | 337 memcpy(f + pathlen, name, namelen + 1); |
339 return f; | 338 return f; |
340 } | 339 } |
341 | 340 |
342 FileName::FileName(char *path, char *name) | 341 FileName::FileName(char *path, char *name) |