Differences From Artifact [6182cd74e1]:
- File
src/OFFile.m
— part of check-in
[c5ef582958]
at
2013-03-04 17:20:15
on branch trunk
— Replace BOOL with bool.
The only places where BOOL is left are those where they are required by
the ABI. (user: js, size: 18073) [annotate] [blame] [check-ins using]
To Artifact [526afc5ebd]:
- File src/OFFile.m — part of check-in [c01ed004b0] at 2013-04-26 22:25:13 on branch trunk — Better checks for functions used in OFFile. (user: js, size: 18074) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
31 32 33 34 35 36 37 | #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <dirent.h> | | > > | 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <dirent.h> #ifdef HAVE_PWD_H # include <pwd.h> #endif #ifdef HAVE_GRP_H # include <grp.h> #endif #import "OFFile.h" #import "OFString.h" #import "OFArray.h" #ifdef OF_HAVE_THREADS |
︙ | ︙ | |||
97 98 99 100 101 102 103 | #define DEFAULT_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH #define DIR_MODE DEFAULT_MODE | S_IXUSR | S_IXGRP | S_IXOTH OFStream *of_stdin = nil; OFStream *of_stdout = nil; OFStream *of_stderr = nil; | | | 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | #define DEFAULT_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH #define DIR_MODE DEFAULT_MODE | S_IXUSR | S_IXGRP | S_IXOTH OFStream *of_stdin = nil; OFStream *of_stdout = nil; OFStream *of_stderr = nil; #if defined(OF_HAVE_CHOWN) && defined(OF_HAVE_THREADS) static of_mutex_t mutex; #endif static int parse_mode(const char *mode) { if (!strcmp(mode, "r")) return O_RDONLY; |
︙ | ︙ | |||
158 159 160 161 162 163 164 | objc_autoreleasePoolPop(pool); } @interface OFFileSingleton: OFFile @end @implementation OFFile | | | 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 | objc_autoreleasePoolPop(pool); } @interface OFFileSingleton: OFFile @end @implementation OFFile #if defined(OF_HAVE_CHOWN) && defined(OF_HAVE_THREADS) + (void)initialize { if (self != [OFFile class]) return; if (!of_mutex_new(&mutex)) @throw [OFInitializationFailedException |
︙ | ︙ | |||
385 386 387 388 389 390 391 | if (_wchdir([path UTF16String])) #endif @throw [OFChangeDirectoryFailedException exceptionWithClass: self path: path]; } | | | 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 | if (_wchdir([path UTF16String])) #endif @throw [OFChangeDirectoryFailedException exceptionWithClass: self path: path]; } #ifdef OF_HAVE_CHMOD + (void)changeModeOfFileAtPath: (OFString*)path mode: (mode_t)mode { # ifndef _WIN32 if (chmod([path cStringWithEncoding: OF_STRING_ENCODING_NATIVE], mode)) # else if (_wchmod([path UTF16String], mode)) |
︙ | ︙ | |||
442 443 444 445 446 447 448 | path: path mode: @"r"]; /* FIXME: We could be more precise on some OSes */ return [OFDate dateWithTimeIntervalSince1970: s.st_mtime]; } | | | 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 | path: path mode: @"r"]; /* FIXME: We could be more precise on some OSes */ return [OFDate dateWithTimeIntervalSince1970: s.st_mtime]; } #ifdef OF_HAVE_CHOWN + (void)changeOwnerOfFileAtPath: (OFString*)path owner: (OFString*)owner group: (OFString*)group { uid_t uid = -1; gid_t gid = -1; |
︙ | ︙ | |||
543 544 545 546 547 548 549 | length = [sourceFile readIntoBuffer: buffer length: pageSize]; [destinationFile writeBuffer: buffer length: length]; } | | | 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 | length = [sourceFile readIntoBuffer: buffer length: pageSize]; [destinationFile writeBuffer: buffer length: length]; } #ifdef OF_HAVE_CHMOD if (!override) { struct stat s; if (fstat(sourceFile->_fd, &s) == 0) fchmod(destinationFile->_fd, s.st_mode); } #else |
︙ | ︙ | |||
610 611 612 613 614 615 616 | if (_wrmdir([path UTF16String])) #endif @throw [OFDeleteDirectoryFailedException exceptionWithClass: self path: path]; } | | | 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 | if (_wrmdir([path UTF16String])) #endif @throw [OFDeleteDirectoryFailedException exceptionWithClass: self path: path]; } #ifdef OF_HAVE_LINK + (void)linkFileAtPath: (OFString*)source toPath: (OFString*)destination { void *pool = objc_autoreleasePoolPush(); if ([self directoryExistsAtPath: destination]) { OFString *filename = [source lastPathComponent]; |
︙ | ︙ | |||
632 633 634 635 636 637 638 | sourcePath: source destinationPath: destination]; objc_autoreleasePoolPop(pool); } #endif | | | 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 | sourcePath: source destinationPath: destination]; objc_autoreleasePoolPop(pool); } #endif #ifdef OF_HAVE_SYMLINK + (void)symlinkFileAtPath: (OFString*)source toPath: (OFString*)destination { void *pool = objc_autoreleasePoolPush(); if ([self directoryExistsAtPath: destination]) { OFString *filename = [source lastPathComponent]; |
︙ | ︙ |