Changes In Branch set-mtime Through [05da423cc9] Excluding Merge-Ins
This is equivalent to a diff from 1d627ae293 to 05da423cc9
2020-06-01
| ||
18:29 | README.md: Fix a weird line break check-in: eb58561473 user: js tags: trunk | |
18:24 | OFFileURLHandler: Weakly link _wutime64 check-in: 1fedd3e87a user: js tags: set-mtime | |
17:55 | OFFileURLHandler: Support setting mtime on Windows check-in: 05da423cc9 user: js tags: set-mtime | |
17:16 | OFFileURLHandler: Add support for setting mtime check-in: 1273a3a39a user: js tags: set-mtime | |
00:17 | README.md: Add documentation section check-in: 1d627ae293 user: js tags: trunk | |
00:01 | README.md: Add a "Cloning the repository" section check-in: 4c1f7dbb1a user: js tags: trunk | |
Modified src/OFFileURLHandler.m from [b6ef19d4e0] to [605a683718].
︙ | ︙ | |||
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #include <errno.h> #ifdef HAVE_DIRENT_H # include <dirent.h> #endif #include "unistd_wrapper.h" #ifdef HAVE_SYS_STAT_H # include <sys/stat.h> #endif #ifdef HAVE_PWD_H # include <pwd.h> #endif #ifdef HAVE_GRP_H # include <grp.h> | > > > > > | 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #include <errno.h> #ifdef HAVE_DIRENT_H # include <dirent.h> #endif #include "unistd_wrapper.h" #import "platform.h" #ifdef HAVE_SYS_STAT_H # include <sys/stat.h> #endif #include <sys/time.h> #ifdef OF_WINDOWS # include <utime.h> #endif #ifdef HAVE_PWD_H # include <pwd.h> #endif #ifdef HAVE_GRP_H # include <grp.h> |
︙ | ︙ | |||
593 594 595 596 597 598 599 600 601 602 603 604 605 606 | setSymbolicLinkDestinationAttribute(ret, URL); #endif objc_autoreleasePoolPop(pool); return ret; } - (void)of_setPOSIXPermissions: (OFNumber *)permissions ofItemAtURL: (OFURL *)URL attributes: (of_file_attributes_t)attributes { #ifdef OF_FILE_MANAGER_SUPPORTS_PERMISSIONS uint16_t mode = permissions.uInt16Value & 0777; | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 | setSymbolicLinkDestinationAttribute(ret, URL); #endif objc_autoreleasePoolPop(pool); return ret; } - (void)of_setModificationDate: (OFDate *)date ofItemAtURL: (OFURL *)URL attributes: (of_file_attributes_t)attributes { of_time_interval_t timeInterval = date.timeIntervalSince1970; OFString *path = URL.fileSystemRepresentation; #ifdef OF_WINDOWS struct __utimbuf64 times = { (__time64_t)timeInterval, (__time64_t)timeInterval }; if (_wutime64([path UTF16String], ×) != 0) @throw [OFSetItemAttributesFailedException exceptionWithURL: URL attributes: attributes failedAttribute: of_file_attribute_key_modification_date errNo: errno]; #else struct timeval times[2] = { { .tv_sec = (time_t)timeInterval, .tv_usec = (int)((timeInterval - times[0].tv_sec) * 1000) }, times[0] }; if (utimes([path cStringWithEncoding: [OFLocale encoding]], times) != 0) @throw [OFSetItemAttributesFailedException exceptionWithURL: URL attributes: attributes failedAttribute: of_file_attribute_key_modification_date errNo: errno]; #endif } - (void)of_setPOSIXPermissions: (OFNumber *)permissions ofItemAtURL: (OFURL *)URL attributes: (of_file_attributes_t)attributes { #ifdef OF_FILE_MANAGER_SUPPORTS_PERMISSIONS uint16_t mode = permissions.uInt16Value & 0777; |
︙ | ︙ | |||
707 708 709 710 711 712 713 | @throw [OFInvalidArgumentException exception]; keyEnumerator = [attributes keyEnumerator]; objectEnumerator = [attributes objectEnumerator]; while ((key = [keyEnumerator nextObject]) != nil && (object = [objectEnumerator nextObject]) != nil) { | | > > > > | 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 | @throw [OFInvalidArgumentException exception]; keyEnumerator = [attributes keyEnumerator]; objectEnumerator = [attributes objectEnumerator]; while ((key = [keyEnumerator nextObject]) != nil && (object = [objectEnumerator nextObject]) != nil) { if ([key isEqual: of_file_attribute_key_modification_date]) [self of_setModificationDate: object ofItemAtURL: URL attributes: attributes]; else if ([key isEqual: of_file_attribute_key_posix_permissions]) [self of_setPOSIXPermissions: object ofItemAtURL: URL attributes: attributes]; else if ([key isEqual: of_file_attribute_key_owner]) [self of_setOwner: object andGroup: nil ofItemAtURL: URL |
︙ | ︙ |