ObjFW  Diff

Differences From Artifact [2be3d5c462]:

To Artifact [fd065f5f06]:


20
21
22
23
24
25
26
27

28
29
30
31

32
33
34
35
36

37
38
39
40
41
42
43
44
45
46
47
48
49
50



51
52

53
54
55
56
57



58
59
60
61
62
63
64
65
66
67
68
69


70
71
72
73
74
75
76
77


78
79
80
81



82
83

84
85
86
87
88

89
90
91
92
93

94
95
96
97
98

99
100
20
21
22
23
24
25
26

27
28
29
30

31
32
33
34
35

36
37
38
39
40
41
42
43
44
45
46
47



48
49
50
51

52
53
54



55
56
57
58
59
60
61
62
63
64
65
66
67


68
69
70
71
72
73
74
75


76
77
78



79
80
81
82

83
84
85
86
87

88
89
90
91
92

93
94
95
96
97

98
99
100







-
+



-
+




-
+











-
-
-
+
+
+

-
+


-
-
-
+
+
+










-
-
+
+






-
-
+
+

-
-
-
+
+
+

-
+




-
+




-
+




-
+



#import "OFOpenFileFailedException.h"
#import "OFString.h"

#import "common.h"

@implementation OFOpenFileFailedException
+ (instancetype)exceptionWithClass: (Class)class_
+ (instancetype)exceptionWithClass: (Class)class
			      path: (OFString*)path
			      mode: (OFString*)mode
{
	return [[[self alloc] initWithClass: class_
	return [[[self alloc] initWithClass: class
				       path: path
				       mode: mode] autorelease];
}

- initWithClass: (Class)class_
- initWithClass: (Class)class
{
	@try {
		[self doesNotRecognizeSelector: _cmd];
	} @catch (id e) {
		[self release];
		@throw e;
	}

	abort();
}

- initWithClass: (Class)class_
	   path: (OFString*)path_
	   mode: (OFString*)mode_
- initWithClass: (Class)class
	   path: (OFString*)path
	   mode: (OFString*)mode
{
	self = [super initWithClass: class_];
	self = [super initWithClass: class];

	@try {
		path  = [path_ copy];
		mode  = [mode_ copy];
		errNo = GET_ERRNO;
		_path  = [path copy];
		_mode  = [mode copy];
		_errNo = GET_ERRNO;
	} @catch (id e) {
		[self release];
		@throw e;
	}

	return self;
}

- (void)dealloc
{
	[path release];
	[mode release];
	[_path release];
	[_mode release];

	[super dealloc];
}

- (OFString*)description
{
	if (description != nil)
		return description;
	if (_description != nil)
		return _description;

	description = [[OFString alloc] initWithFormat:
	    @"Failed to open file %@ with mode %@ in class %@! " ERRFMT, path,
	    mode, inClass, ERRPARAM];
	_description = [[OFString alloc] initWithFormat:
	    @"Failed to open file %@ with mode %@ in class %@! " ERRFMT, _path,
	    _mode, _inClass, ERRPARAM];

	return description;
	return _description;
}

- (int)errNo
{
	return errNo;
	return _errNo;
}

- (OFString*)path
{
	OF_GETTER(path, NO)
	OF_GETTER(_path, NO)
}

- (OFString*)mode
{
	OF_GETTER(mode, NO)
	OF_GETTER(_mode, NO)
}
@end