ObjFW  Diff

Differences From Artifact [47058a7cb6]:

To Artifact [4d246f30a8]:


30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

@interface LibraryGenerator: OFObject <OFApplicationDelegate>
@end

OF_APPLICATION_DELEGATE(LibraryGenerator)

@implementation LibraryGenerator
- (void)applicationDidFinishLaunching
{
	[self generateLinkLibInDirectory: @"../../src/runtime"];

	[OFApplication terminate];
}

- (void)generateLinkLibInDirectory: (OFString *)directory
{
	OFXMLElement *library = [OFXMLElement elementWithFile:
	    [directory stringByAppendingPathComponent: @"library.xml"]];
	OFString *linklibPath = [[directory
	    stringByAppendingPathComponent: @"linklib"]
	    stringByAppendingPathComponent: @"linklib.m"];







<
<
<
<
<
<
<







30
31
32
33
34
35
36







37
38
39
40
41
42
43

@interface LibraryGenerator: OFObject <OFApplicationDelegate>
@end

OF_APPLICATION_DELEGATE(LibraryGenerator)

@implementation LibraryGenerator







- (void)generateLinkLibInDirectory: (OFString *)directory
{
	OFXMLElement *library = [OFXMLElement elementWithFile:
	    [directory stringByAppendingPathComponent: @"library.xml"]];
	OFString *linklibPath = [[directory
	    stringByAppendingPathComponent: @"linklib"]
	    stringByAppendingPathComponent: @"linklib.m"];
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
		    @"\n"
		    @"\t",
		    libBase, libBase];

		if (![returnType isEqual: @"void"])
			[linklib writeString: @"return "];

		[linklib writeString: @"(("];
		[linklib writeString: returnType];
		if (![returnType hasSuffix: @"*"])
			[linklib writeString: @" "];
		[linklib writeString: @"(*)("];

		argumentIndex = 0;
		for (OFXMLElement *argument in arguments) {







|







166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
		    @"\n"
		    @"\t",
		    libBase, libBase];

		if (![returnType isEqual: @"void"])
			[linklib writeString: @"return "];

		[linklib writeString: @"__extension__ (("];
		[linklib writeString: returnType];
		if (![returnType hasSuffix: @"*"])
			[linklib writeString: @" "];
		[linklib writeString: @"(*)("];

		argumentIndex = 0;
		for (OFXMLElement *argument in arguments) {
217
218
219
220
221
222
223







224

		[linklib writeString: @"}\n"];

		if (++funcIndex < functions.count)
			[linklib writeString: @"\n"];
	}
}







@end







>
>
>
>
>
>
>

210
211
212
213
214
215
216
217
218
219
220
221
222
223
224

		[linklib writeString: @"}\n"];

		if (++funcIndex < functions.count)
			[linklib writeString: @"\n"];
	}
}

- (void)applicationDidFinishLaunching
{
	[self generateLinkLibInDirectory: @"../../src/runtime"];

	[OFApplication terminate];
}
@end