Differences From Artifact [ab8f876cd6]:
- File
src/OFFile.m
— part of check-in
[d230ac577d]
at
2011-02-09 18:55:29
on branch trunk
— Initial PSP port.
Does compile with --disable-threads --disable-shared, but does not link
yet. (user: js, size: 15396) [annotate] [blame] [check-ins using]
To Artifact [c76530e6dd]:
- File src/OFFile.m — part of check-in [33f646ce2d] at 2011-02-09 19:34:26 on branch trunk — More changes to port ObjFW to PSP. (user: js, size: 15467) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
394 395 396 397 398 399 400 401 402 403 | + (void)changeToDirectory: (OFString*)path { if (chdir([path cString])) @throw [OFChangeDirectoryFailedException newWithClass: self path: path]; } + (void)changeModeOfFile: (OFString*)path toMode: (mode_t)mode { | > | | | > | | 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 | + (void)changeToDirectory: (OFString*)path { if (chdir([path cString])) @throw [OFChangeDirectoryFailedException newWithClass: self path: path]; } #ifndef _PSP + (void)changeModeOfFile: (OFString*)path toMode: (mode_t)mode { # ifndef _WIN32 if (chmod([path cString], mode)) @throw [OFChangeFileModeFailedException newWithClass: self path: path mode: mode]; # else DWORD attrs = GetFileAttributes([path cString]); if (attrs == INVALID_FILE_ATTRIBUTES) @throw [OFChangeFileModeFailedException newWithClass: self path: path mode: mode]; if ((mode / 100) & 2) attrs &= ~FILE_ATTRIBUTE_READONLY; else attrs |= FILE_ATTRIBUTE_READONLY; if (!SetFileAttributes([path cString], attrs)) @throw [OFChangeFileModeFailedException newWithClass: self path: path mode: mode]; # endif } #endif + (OFDate*)modificationDateOfFile: (OFString*)path { struct stat s; if (stat([path cString], &s) == -1) /* FIXME: Maybe use another exception? */ @throw [OFOpenFileFailedException newWithClass: self path: path mode: @"r"]; /* FIXME: We could be more precise on some OSes */ return [OFDate dateWithTimeIntervalSince1970: s.st_mtime]; } #if !defined(_WIN32) && !defined(_PSP) + (void)changeOwnerOfFile: (OFString*)path toOwner: (OFString*)owner group: (OFString*)group { uid_t uid = -1; gid_t gid = -1; |
︙ | ︙ | |||
524 525 526 527 528 529 530 | while (![src isAtEndOfStream]) { size_t len = [src readNBytes: 4096 intoBuffer: buf]; [dest writeNBytes: len fromBuffer: buf]; } | | | 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 | while (![src isAtEndOfStream]) { size_t len = [src readNBytes: 4096 intoBuffer: buf]; [dest writeNBytes: len fromBuffer: buf]; } #if !defined(_WIN32) && !defined(_PSP) if (!override) { struct stat s; if (fstat(src->fd, &s) == 0) fchmod(dest->fd, s.st_mode); } #endif |
︙ | ︙ |