Mercurial > projects > ldc
comparison dmd/root.c @ 336:aaade6ded589 trunk
[svn r357] Merged DMD 1.033
author | lindquist |
---|---|
date | Sat, 12 Jul 2008 19:38:31 +0200 |
parents | 2b72433d5c8c |
children | 6bd99cc5eb08 |
comparison
equal
deleted
inserted
replaced
335:17b844102023 | 336:aaade6ded589 |
---|---|
496 #endif | 496 #endif |
497 } | 497 } |
498 | 498 |
499 /******************************** | 499 /******************************** |
500 * Return filename extension (read-only). | 500 * Return filename extension (read-only). |
501 * Points past '.' of extension. | |
501 * If there isn't one, return NULL. | 502 * If there isn't one, return NULL. |
502 */ | 503 */ |
503 | 504 |
504 char *FileName::ext(const char *str) | 505 char *FileName::ext(const char *str) |
505 { | 506 { |
517 break; | 518 break; |
518 #endif | 519 #endif |
519 #if _WIN32 | 520 #if _WIN32 |
520 case '\\': | 521 case '\\': |
521 case ':': | 522 case ':': |
523 case '/': | |
522 break; | 524 break; |
523 #endif | 525 #endif |
524 default: | 526 default: |
525 if (e == str) | 527 if (e == str) |
526 break; | 528 break; |
532 } | 534 } |
533 | 535 |
534 char *FileName::ext() | 536 char *FileName::ext() |
535 { | 537 { |
536 return ext(str); | 538 return ext(str); |
539 } | |
540 | |
541 /******************************** | |
542 * Return mem.malloc'd filename with extension removed. | |
543 */ | |
544 | |
545 char *FileName::removeExt(const char *str) | |
546 { | |
547 const char *e = ext(str); | |
548 if (e) | |
549 { size_t len = (e - str) - 1; | |
550 char *n = (char *)mem.malloc(len + 1); | |
551 memcpy(n, str, len); | |
552 n[len] = 0; | |
553 return n; | |
554 } | |
555 return mem.strdup(str); | |
537 } | 556 } |
538 | 557 |
539 /******************************** | 558 /******************************** |
540 * Return filename name excluding path (read-only). | 559 * Return filename name excluding path (read-only). |
541 */ | 560 */ |
1061 int fd; | 1080 int fd; |
1062 ssize_t numwritten; | 1081 ssize_t numwritten; |
1063 char *name; | 1082 char *name; |
1064 | 1083 |
1065 name = this->name->toChars(); | 1084 name = this->name->toChars(); |
1066 fd = open(name, O_CREAT | O_WRONLY | O_TRUNC, 0660); | 1085 fd = open(name, O_CREAT | O_WRONLY | O_TRUNC, 0644); |
1067 if (fd == -1) | 1086 if (fd == -1) |
1068 goto err; | 1087 goto err; |
1069 | 1088 |
1070 numwritten = ::write(fd, buffer, len); | 1089 numwritten = ::write(fd, buffer, len); |
1071 if (len != numwritten) | 1090 if (len != numwritten) |
1395 void OutBuffer::writebstring(unsigned char *string) | 1414 void OutBuffer::writebstring(unsigned char *string) |
1396 { | 1415 { |
1397 write(string,*string + 1); | 1416 write(string,*string + 1); |
1398 } | 1417 } |
1399 | 1418 |
1400 void OutBuffer::writestring(char *string) | 1419 void OutBuffer::writestring(const char *string) |
1401 { | 1420 { |
1402 write(string,strlen(string)); | 1421 write(string,strlen(string)); |
1403 } | 1422 } |
1404 | 1423 |
1405 void OutBuffer::writedstring(const char *string) | 1424 void OutBuffer::writedstring(const char *string) |