@@ -17,21 +17,21 @@ #include "config.h" #import "OFChangeOwnerFailedException.h" #import "OFString.h" -#import "common.h" - #ifdef OF_HAVE_CHOWN @implementation OFChangeOwnerFailedException + (instancetype)exceptionWithPath: (OFString*)path owner: (OFString*)owner group: (OFString*)group + errNo: (int)errNo { return [[[self alloc] initWithPath: path owner: owner - group: group] autorelease]; + group: group + errNo: errNo] autorelease]; } - init { OF_INVALID_INIT_METHOD @@ -38,18 +38,19 @@ } - initWithPath: (OFString*)path owner: (OFString*)owner group: (OFString*)group + errNo: (int)errNo { self = [super init]; @try { _path = [path copy]; _owner = [owner copy]; _group = [group copy]; - _errNo = GET_ERRNO; + _errNo = errNo; } @catch (id e) { [self release]; @throw e; } @@ -67,20 +68,20 @@ - (OFString*)description { if (_group == nil) return [OFString stringWithFormat: - @"Failed to change owner of item at path %@ to %@! " - ERRFMT, _path, _owner, ERRPARAM]; + @"Failed to change owner of item at path %@ to %@: %@", + _path, _owner, of_strerror(_errNo)]; else if (_owner == nil) return [OFString stringWithFormat: - @"Failed to change group of item at path %@ to %@! " - ERRFMT, _path, _group, ERRPARAM]; + @"Failed to change group of item at path %@ to %@: %@", + _path, _group, of_strerror(_errNo)]; else return [OFString stringWithFormat: - @"Failed to change owner of item at path %@ to %@:%@! " - ERRFMT, _path, _owner, _group, ERRPARAM]; + @"Failed to change owner of item at path %@ to %@:%@: %@", + _path, _owner, _group, of_strerror(_errNo)]; } - (OFString*)path { OF_GETTER(_path, true)