Overview
Context
Changes
Modified src/OFFileIRIHandler.m
from [8c0c84267e]
to [1c1ffcead0].
︙ | | |
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
|
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
OFString *path = IRI.fileSystemRepresentation;
OFStringEncoding encoding = [OFLocale encoding];
if (lsetxattr([path cStringWithEncoding: encoding],
[name cStringWithEncoding: encoding], data.items,
data.count * data.itemSize, 0) != 0) {
int errNo = errno;
/* TODO: Add an attribute (prefix?) for extended attributes? */
@throw [OFSetItemAttributesFailedException
exceptionWithIRI: IRI
attributes: [OFDictionary dictionary]
failedAttribute: @""
errNo: errNo];
}
objc_autoreleasePoolPop(pool);
}
- (void)removeExtendedAttributeForName: (OFString *)name
ofItemAtIRI: (OFIRI *)IRI
{
void *pool = objc_autoreleasePoolPush();
OFString *path = IRI.fileSystemRepresentation;
OFStringEncoding encoding = [OFLocale encoding];
if (lremovexattr([path cStringWithEncoding: encoding],
[name cStringWithEncoding: encoding]) != 0) {
int errNo = errno;
/* TODO: Add an attribute (prefix?) for extended attributes? */
@throw [OFSetItemAttributesFailedException
exceptionWithIRI: IRI
attributes: [OFDictionary dictionary]
failedAttribute: @""
errNo: errNo];
}
objc_autoreleasePoolPop(pool);
}
#endif
@end
|
Modified src/OFFileManager.h
from [9eaa95b3c2]
to [a24032e0b0].
︙ | | |
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
|
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
|
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
* scheme
*/
- (void)createSymbolicLinkAtIRI: (OFIRI *)IRI
withDestinationPath: (OFString *)target;
#ifdef OF_FILE_MANAGER_SUPPORTS_EXTENDED_ATTRIBUTES
/**
* @brief Returns the extended attribute data for the specified name for the
* specified path.
* @brief Returns the extended attribute data for the specified name of the
* item at the specified path.
*
* This method is not available on some systems.
*
* @param name The name of the extended attribute
* @param path The path of the item to return the extended attribute from
* @throw OFGetItemAttributesFailedException Getting the extended attribute
* failed
* @throw OFNotImplementedException Getting extended attributes is not
* implemented for the specified item
*/
- (OFData *)extendedAttributeDataForName: (OFString *)name
ofItemAtPath: (OFString *)path;
#endif
/**
* @brief Returns the extended attribute data for the specified name for the
* specified IRI.
* @brief Returns the extended attribute data for the specified name of the
* item at the specified IRI.
*
* This method is not available for all IRIs.
*
* @param name The name of the extended attribute
* @param IRI The IRI of the item to return the extended attribute from
* @throw OFGetItemAttributesFailedException Getting the extended attribute
* failed
* @throw OFUnsupportedProtocolException No handler is registered for the IRI's
* scheme
* @throw OFNotImplementedException Getting extended attributes is not
* implemented for the specified item
*/
- (OFData *)extendedAttributeDataForName: (OFString *)name
ofItemAtIRI: (OFIRI *)IRI;
#ifdef OF_FILE_MANAGER_SUPPORTS_EXTENDED_ATTRIBUTES
/**
* @brief Sets the extended attribute data for the specified name for the
* specified IRI.
* @brief Sets the extended attribute data for the specified name of the item
* at the specified path.
*
* This method is not available for all IRIS.
* This method is not available on some systems.
*
* @param data The data for the extended attribute
* @param name The name of the extended attribute
* @param path The path of the item to set the extended attribute on
* @throw OFSetItemAttributesFailedException Setting the extended attribute
* failed
* @throw OFNotImplementedException Setting extended attributes is not
* implemented for the specified item
*/
- (void)setExtendedAttributeData: (OFData *)data
forName: (OFString *)name
ofItemAtPath: (OFString *)path;
#endif
/**
* @brief Sets the extended attribute data for the specified name for the
* specified IRI.
* @brief Sets the extended attribute data for the specified name of the item
* at the specified IRI.
*
* This method is not available for all IRIS.
* This method is not available for all IRIs.
*
* @param data The data for the extended attribute
* @param name The name of the extended attribute
* @param IRI The IRI of the item to set the extended attribute on
* @throw OFSetItemAttributesFailedException Setting the extended attribute
* failed
* @throw OFUnsupportedProtocolException No handler is registered for the IRI's
* scheme
* @throw OFNotImplementedException Setting extended attributes is not
* implemented for the specified item
*/
- (void)setExtendedAttributeData: (OFData *)data
forName: (OFString *)name
ofItemAtIRI: (OFIRI *)IRI;
#ifdef OF_FILE_MANAGER_SUPPORTS_EXTENDED_ATTRIBUTES
/**
* @brief Removes the extended attribute for the specified name wof the item at
* the specified path.
*
* This method is not available on some systems.
*
* @param name The name of the extended attribute to remove
* @param path The path of the item to remove the extended attribute from
* @throw OFSetItemAttributesFailedException Removing the extended attribute
* failed
* @throw OFNotImplementedException Removing extended attributes is not
* implemented for the specified item
*/
- (void)removeExtendedAttributeForName: (OFString *)name
ofItemAtPath: (OFString *)path;
#endif
/**
* @brief Removes the extended attribute for the specified name wof the item at
* the specified IRI.
*
* This method is not available for all IRIs.
*
* @param name The name of the extended attribute to remove
* @param IRI The IRI of the item to remove the extended attribute from
* @throw OFSetItemAttributesFailedException Removing the extended attribute
* failed
* @throw OFUnsupportedProtocolException No handler is registered for the IRI's
* scheme
* @throw OFNotImplementedException Removing extended attributes is not
* implemented for the specified item
*/
- (void)removeExtendedAttributeForName: (OFString *)name
ofItemAtIRI: (OFIRI *)IRI;
@end
@interface OFDictionary (FileAttributes)
/**
* @brief The @ref OFFileSize key from the dictionary.
*
* @throw OFUndefinedKeyException The key is missing
|
︙ | | |
Modified src/OFFileManager.m
from [b17fc97839]
to [b8c51c0d24].
︙ | | |
946
947
948
949
950
951
952
953
954
955
956
957
958
959
|
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
void *pool = objc_autoreleasePoolPush();
[self setExtendedAttributeData: data
forName: name
ofItemAtIRI: [OFIRI fileIRIWithPath: path]];
objc_autoreleasePoolPop(pool);
}
#endif
- (void)removeExtendedAttributeForName: (OFString *)name
ofItemAtIRI: (OFIRI *)IRI
{
OFIRIHandler *IRIHandler;
if (IRI == nil)
@throw [OFInvalidArgumentException exception];
if ((IRIHandler = [OFIRIHandler handlerForIRI: IRI]) == nil)
@throw [OFUnsupportedProtocolException exceptionWithIRI: IRI];
[IRIHandler removeExtendedAttributeForName: name ofItemAtIRI: IRI];
}
#ifdef OF_FILE_MANAGER_SUPPORTS_EXTENDED_ATTRIBUTES
- (void)removeExtendedAttributeForName: (OFString *)name
ofItemAtPath: (OFString *)path
{
void *pool = objc_autoreleasePoolPush();
[self removeExtendedAttributeForName: name
ofItemAtIRI: [OFIRI fileIRIWithPath: path]];
objc_autoreleasePoolPop(pool);
}
#endif
@end
@implementation OFDefaultFileManager
- (instancetype)autorelease
{
return self;
}
|
︙ | | |
Modified src/OFIRIHandler.h
from [326ecbc167]
to [907c8f4d42].
︙ | | |
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
|
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
|
-
-
+
+
+
+
-
-
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
* @throw OFMoveItemFailedException Moving failed
* @throw OFUnsupportedProtocolException The handler cannot handle the IRI's
* scheme
*/
- (bool)moveItemAtIRI: (OFIRI *)source toIRI: (OFIRI *)destination;
/**
* @brief Returns the extended attribute with the specified name for the
* specified IRI.
* @brief Returns the extended attribute data for the specified name of the
* item at the specified IRI.
*
* This method is not available for all IRIs.
*
* @param name The name of the extended attribute
* @param IRI The IRI of the item to return the extended attribute from
* @throw OFGetItemAttributesFailedException Getting the extended attribute
* failed
* @throw OFUnsupportedProtocolException The handler cannot handle the IRI's
* scheme
* @throw OFNotImplementedException Getting extended attributes is not
* implemented for the specified item
*/
- (OFData *)extendedAttributeDataForName: (OFString *)name
ofItemAtIRI: (OFIRI *)IRI;
/**
* @brief Sets the extended attribute data for the specified name for the
* specified IRI.
* @brief Sets the extended attribute data for the specified name of the item
* at the specified IRI.
*
* This method is not available for all IRIS.
* This method is not available for all IRIs.
*
* @param data The data for the extended attribute
* @param name The name of the extended attribute
* @param IRI The IRI of the item to set the extended attribute on
* @throw OFSetItemAttributesFailedException Setting the extended attribute
* failed
* @throw OFUnsupportedProtocolException No handler is registered for the IRI's
* @throw OFUnsupportedProtocolException The handler cannot handle the IRI's
* scheme
* @throw OFNotImplementedException Setting extended attributes is not
* implemented for the specified item
*/
- (void)setExtendedAttributeData: (OFData *)data
forName: (OFString *)name
ofItemAtIRI: (OFIRI *)IRI;
/**
* @brief Removes the extended attribute for the specified name wof the item at
* the specified IRI.
*
* This method is not available for all IRIs.
*
* @param name The name of the extended attribute to remove
* @param IRI The IRI of the item to remove the extended attribute from
* @throw OFSetItemAttributesFailedException Removing the extended attribute
* failed
* @throw OFUnsupportedProtocolException The handler cannot handle the IRI's
* scheme
* @throw OFNotImplementedException Removing extended attributes is not
* implemented for the specified item
*/
- (void)removeExtendedAttributeForName: (OFString *)name
ofItemAtIRI: (OFIRI *)IRI;
@end
OF_ASSUME_NONNULL_END
|
Modified src/OFIRIHandler.m
from [eaf120f6b8]
to [706a9b9e6c].
︙ | | |
220
221
222
223
224
225
226
227
228
229
|
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
|
+
+
+
+
+
+
|
OF_UNRECOGNIZED_SELECTOR
}
- (void)setExtendedAttributeData: (OFData *)data
forName: (OFString *)name
ofItemAtIRI: (OFIRI *)IRI
{
OF_UNRECOGNIZED_SELECTOR
}
- (void)removeExtendedAttributeForName: (OFString *)name
ofItemAtIRI: (OFIRI *)IRI
{
OF_UNRECOGNIZED_SELECTOR
}
@end
|