Commit 7bec9df11afa2cbea59cdb895a2402dcdfac1adc

Ryan C. Gordon 2020-10-05T16:10:10

url: Add to Xcode project files, iOS/mac fixes.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
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
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
diff --git a/Xcode-iOS/SDL/SDL.xcodeproj/project.pbxproj b/Xcode-iOS/SDL/SDL.xcodeproj/project.pbxproj
index 18258d2..214cca8 100644
--- a/Xcode-iOS/SDL/SDL.xcodeproj/project.pbxproj
+++ b/Xcode-iOS/SDL/SDL.xcodeproj/project.pbxproj
@@ -341,6 +341,28 @@
 		52ED1E7E22288BF00061FCE0 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7D22288BF00061FCE0 /* Metal.framework */; };
 		52ED1E8022288BFA0061FCE0 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7F22288BFA0061FCE0 /* OpenGLES.framework */; };
 		55FFA91A2122302B00D7CBED /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = 55FFA9192122302B00D7CBED /* SDL_syspower.h */; };
+		564A29F7252BB58C00FE6F26 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 564A29F4252BB58C00FE6F26 /* SDL_sysurl.h */; };
+		564A29F8252BB58C00FE6F26 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 564A29F4252BB58C00FE6F26 /* SDL_sysurl.h */; };
+		564A29F9252BB58C00FE6F26 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 564A29F4252BB58C00FE6F26 /* SDL_sysurl.h */; };
+		564A29FA252BB58C00FE6F26 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 564A29F4252BB58C00FE6F26 /* SDL_sysurl.h */; };
+		564A29FB252BB58C00FE6F26 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 564A29F4252BB58C00FE6F26 /* SDL_sysurl.h */; };
+		564A29FC252BB58C00FE6F26 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = 564A29F5252BB58C00FE6F26 /* SDL_sysurl.m */; };
+		564A29FD252BB58C00FE6F26 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = 564A29F5252BB58C00FE6F26 /* SDL_sysurl.m */; };
+		564A29FE252BB58C00FE6F26 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = 564A29F5252BB58C00FE6F26 /* SDL_sysurl.m */; };
+		564A29FF252BB58C00FE6F26 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = 564A29F5252BB58C00FE6F26 /* SDL_sysurl.m */; };
+		564A2A00252BB58C00FE6F26 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = 564A29F5252BB58C00FE6F26 /* SDL_sysurl.m */; };
+		564A2A01252BB58C00FE6F26 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = 564A29F5252BB58C00FE6F26 /* SDL_sysurl.m */; };
+		564A2A02252BB58C00FE6F26 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 564A29F6252BB58C00FE6F26 /* SDL_url.c */; };
+		564A2A03252BB58C00FE6F26 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 564A29F6252BB58C00FE6F26 /* SDL_url.c */; };
+		564A2A04252BB58C00FE6F26 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 564A29F6252BB58C00FE6F26 /* SDL_url.c */; };
+		564A2A05252BB58C00FE6F26 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 564A29F6252BB58C00FE6F26 /* SDL_url.c */; };
+		564A2A06252BB58C00FE6F26 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 564A29F6252BB58C00FE6F26 /* SDL_url.c */; };
+		564A2A07252BB58C00FE6F26 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 564A29F6252BB58C00FE6F26 /* SDL_url.c */; };
+		564A2A09252BB5A700FE6F26 /* SDL_misc.h in Headers */ = {isa = PBXBuildFile; fileRef = 564A2A08252BB5A700FE6F26 /* SDL_misc.h */; };
+		564A2A0A252BB5A700FE6F26 /* SDL_misc.h in Headers */ = {isa = PBXBuildFile; fileRef = 564A2A08252BB5A700FE6F26 /* SDL_misc.h */; };
+		564A2A0B252BB5A700FE6F26 /* SDL_misc.h in Headers */ = {isa = PBXBuildFile; fileRef = 564A2A08252BB5A700FE6F26 /* SDL_misc.h */; };
+		564A2A0C252BB5A700FE6F26 /* SDL_misc.h in Headers */ = {isa = PBXBuildFile; fileRef = 564A2A08252BB5A700FE6F26 /* SDL_misc.h */; };
+		564A2A0D252BB5A700FE6F26 /* SDL_misc.h in Headers */ = {isa = PBXBuildFile; fileRef = 564A2A08252BB5A700FE6F26 /* SDL_misc.h */; };
 		566726451DF72CF5001DD3DB /* SDL_dataqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = 566726431DF72CF5001DD3DB /* SDL_dataqueue.c */; };
 		566726461DF72CF5001DD3DB /* SDL_dataqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 566726441DF72CF5001DD3DB /* SDL_dataqueue.h */; };
 		566E26EE2462770300718109 /* SDL_locale.h in Headers */ = {isa = PBXBuildFile; fileRef = 566E26ED2462770300718109 /* SDL_locale.h */; };
@@ -996,6 +1018,10 @@
 		52ED1E7D22288BF00061FCE0 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; };
 		52ED1E7F22288BFA0061FCE0 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
 		55FFA9192122302B00D7CBED /* SDL_syspower.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_syspower.h; sourceTree = "<group>"; };
+		564A29F4252BB58C00FE6F26 /* SDL_sysurl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_sysurl.h; path = misc/SDL_sysurl.h; sourceTree = "<group>"; };
+		564A29F5252BB58C00FE6F26 /* SDL_sysurl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDL_sysurl.m; path = misc/ios/SDL_sysurl.m; sourceTree = "<group>"; };
+		564A29F6252BB58C00FE6F26 /* SDL_url.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_url.c; path = misc/SDL_url.c; sourceTree = "<group>"; };
+		564A2A08252BB5A700FE6F26 /* SDL_misc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_misc.h; sourceTree = "<group>"; };
 		566726431DF72CF5001DD3DB /* SDL_dataqueue.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_dataqueue.c; sourceTree = "<group>"; };
 		566726441DF72CF5001DD3DB /* SDL_dataqueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dataqueue.h; sourceTree = "<group>"; };
 		566E26ED2462770300718109 /* SDL_locale.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_locale.h; sourceTree = "<group>"; };
@@ -1404,6 +1430,24 @@
 			name = Frameworks;
 			sourceTree = "<group>";
 		};
+		564A29F2252BB55100FE6F26 /* misc */ = {
+			isa = PBXGroup;
+			children = (
+				564A29F4252BB58C00FE6F26 /* SDL_sysurl.h */,
+				564A29F6252BB58C00FE6F26 /* SDL_url.c */,
+				564A29F3252BB56300FE6F26 /* ios */,
+			);
+			name = misc;
+			sourceTree = "<group>";
+		};
+		564A29F3252BB56300FE6F26 /* ios */ = {
+			isa = PBXGroup;
+			children = (
+				564A29F5252BB58C00FE6F26 /* SDL_sysurl.m */,
+			);
+			name = ios;
+			sourceTree = "<group>";
+		};
 		566E26F32462773A00718109 /* locale */ = {
 			isa = PBXGroup;
 			children = (
@@ -1700,6 +1744,7 @@
 				AA75587C1595D55500BBD41B /* SDL_main.h */,
 				AA9FF9501637C6E5000DF050 /* SDL_messagebox.h */,
 				FA24348C21D4201400B8918A /* SDL_metal.h */,
+				564A2A08252BB5A700FE6F26 /* SDL_misc.h */,
 				AA75587D1595D55500BBD41B /* SDL_mouse.h */,
 				AA75587E1595D55500BBD41B /* SDL_mutex.h */,
 				AA75587F1595D55500BBD41B /* SDL_name.h */,
@@ -1750,6 +1795,7 @@
 				FD8BD8150E27E25900B52CD5 /* loadso */,
 				566E26F32462773A00718109 /* locale */,
 				F3E3C65322406963007D243C /* main */,
+				564A29F2252BB55100FE6F26 /* misc */,
 				56ED04DE118A8E9A00A56AA6 /* power */,
 				041B2CE312FA0F680087D585 /* render */,
 				F30D9C9A212CD0590047DF2E /* sensor */,
@@ -1967,6 +2013,7 @@
 				52ED1D78222889500061FCE0 /* SDL_joystick_c.h in Headers */,
 				52ED1D79222889500061FCE0 /* SDL_sysjoystick.h in Headers */,
 				52ED1D7A222889500061FCE0 /* SDL_uikitevents.h in Headers */,
+				564A2A0A252BB5A700FE6F26 /* SDL_misc.h in Headers */,
 				52ED1D7B222889500061FCE0 /* SDL_uikitopengles.h in Headers */,
 				52ED1D7C222889500061FCE0 /* SDL_uikitvideo.h in Headers */,
 				52ED1D7D222889500061FCE0 /* SDL_uikitwindow.h in Headers */,
@@ -1975,6 +2022,7 @@
 				52ED1D80222889500061FCE0 /* SDL_uikitappdelegate.h in Headers */,
 				52ED1D81222889500061FCE0 /* SDL_dynapi_overrides.h in Headers */,
 				52ED1D82222889500061FCE0 /* yuv_rgb_std_func.h in Headers */,
+				564A29F8252BB58C00FE6F26 /* SDL_sysurl.h in Headers */,
 				52ED1D83222889500061FCE0 /* SDL_syshaptic.h in Headers */,
 				52ED1D84222889500061FCE0 /* SDL_blit_slow.h in Headers */,
 				52ED1D85222889500061FCE0 /* SDL_rwopsbundlesupport.h in Headers */,
@@ -2086,6 +2134,8 @@
 			isa = PBXHeadersBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				564A29FA252BB58C00FE6F26 /* SDL_sysurl.h in Headers */,
+				564A2A0C252BB5A700FE6F26 /* SDL_misc.h in Headers */,
 				566E26F12462770300718109 /* SDL_locale.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -2108,6 +2158,7 @@
 				F3E3C6662241389A007D243C /* SDL_joystick_c.h in Headers */,
 				F3E3C6672241389A007D243C /* SDL_sysjoystick.h in Headers */,
 				F3E3C6682241389A007D243C /* SDL_uikitevents.h in Headers */,
+				564A2A0B252BB5A700FE6F26 /* SDL_misc.h in Headers */,
 				F3E3C6692241389A007D243C /* SDL_uikitopengles.h in Headers */,
 				F3E3C66A2241389A007D243C /* SDL_uikitvideo.h in Headers */,
 				F3E3C66B2241389A007D243C /* SDL_uikitwindow.h in Headers */,
@@ -2116,6 +2167,7 @@
 				F3E3C66E2241389A007D243C /* SDL_uikitappdelegate.h in Headers */,
 				F3E3C66F2241389A007D243C /* SDL_dynapi_overrides.h in Headers */,
 				F3E3C6702241389A007D243C /* yuv_rgb_std_func.h in Headers */,
+				564A29F9252BB58C00FE6F26 /* SDL_sysurl.h in Headers */,
 				F3E3C6712241389A007D243C /* SDL_syshaptic.h in Headers */,
 				F3E3C6722241389A007D243C /* SDL_blit_slow.h in Headers */,
 				F3E3C6732241389A007D243C /* SDL_rwopsbundlesupport.h in Headers */,
@@ -2227,6 +2279,8 @@
 			isa = PBXHeadersBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				564A29FB252BB58C00FE6F26 /* SDL_sysurl.h in Headers */,
+				564A2A0D252BB5A700FE6F26 /* SDL_misc.h in Headers */,
 				566E26F22462770300718109 /* SDL_locale.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -2257,6 +2311,7 @@
 				FD689FCF0E26E9D400F90B21 /* SDL_uikitappdelegate.h in Headers */,
 				56A6703518565E760007D20F /* SDL_dynapi_overrides.h in Headers */,
 				AA13B3571FB8B46400D9FEE6 /* yuv_rgb_std_func.h in Headers */,
+				564A29F7252BB58C00FE6F26 /* SDL_sysurl.h in Headers */,
 				047677BD0EA76A31008ABAF1 /* SDL_syshaptic.h in Headers */,
 				046387420F0B5B7D0041FD65 /* SDL_blit_slow.h in Headers */,
 				006E9888119552DD001DE610 /* SDL_rwopsbundlesupport.h in Headers */,
@@ -2310,6 +2365,7 @@
 				566E26F82462774E00718109 /* SDL_syslocale.h in Headers */,
 				566726461DF72CF5001DD3DB /* SDL_dataqueue.h in Headers */,
 				F30D9C9F212CD0990047DF2E /* SDL_syssensor.h in Headers */,
+				564A2A09252BB5A700FE6F26 /* SDL_misc.h in Headers */,
 				AA7558AA1595D55500BBD41B /* SDL_joystick.h in Headers */,
 				AA13B34B1FB8B27800D9FEE6 /* SDL_shape_internals.h in Headers */,
 				AA7558AB1595D55500BBD41B /* SDL_keyboard.h in Headers */,
@@ -2649,6 +2705,7 @@
 				52ED1E34222889500061FCE0 /* SDL_hidapi_xboxone.c in Sources */,
 				52ED1E35222889500061FCE0 /* SDL_power.c in Sources */,
 				52ED1E36222889500061FCE0 /* SDL_syspower.m in Sources */,
+				564A29FD252BB58C00FE6F26 /* SDL_sysurl.m in Sources */,
 				52ED1E37222889500061FCE0 /* SDL_rwopsbundlesupport.m in Sources */,
 				52ED1E38222889500061FCE0 /* SDL_clipboard.c in Sources */,
 				52ED1E39222889500061FCE0 /* SDL_clipboardevents.c in Sources */,
@@ -2674,6 +2731,7 @@
 				52ED1E4C222889500061FCE0 /* SDL_shaders_gles2.c in Sources */,
 				52ED1E4D222889500061FCE0 /* SDL_log.c in Sources */,
 				52ED1E4E222889500061FCE0 /* SDL_coreaudio.m in Sources */,
+				564A2A03252BB58C00FE6F26 /* SDL_url.c in Sources */,
 				52ED1E4F222889500061FCE0 /* SDL_sensor.c in Sources */,
 				52ED1E50222889500061FCE0 /* SDL_hidapi_switch.c in Sources */,
 				52ED1E51222889500061FCE0 /* SDL_uikitviewcontroller.m in Sources */,
@@ -2692,7 +2750,9 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				564A2A06252BB58C00FE6F26 /* SDL_url.c in Sources */,
 				F3E3C658224069CE007D243C /* SDL_uikit_main.c in Sources */,
+				564A2A00252BB58C00FE6F26 /* SDL_sysurl.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -2785,6 +2845,7 @@
 				F3E3C7232241389A007D243C /* SDL_hidapi_xboxone.c in Sources */,
 				F3E3C7242241389A007D243C /* SDL_power.c in Sources */,
 				F3E3C7252241389A007D243C /* SDL_syspower.m in Sources */,
+				564A29FF252BB58C00FE6F26 /* SDL_sysurl.m in Sources */,
 				F3E3C7262241389A007D243C /* SDL_rwopsbundlesupport.m in Sources */,
 				F3E3C7272241389A007D243C /* SDL_clipboard.c in Sources */,
 				F3E3C7282241389A007D243C /* SDL_clipboardevents.c in Sources */,
@@ -2810,6 +2871,7 @@
 				F3E3C73B2241389A007D243C /* SDL_shaders_gles2.c in Sources */,
 				F3E3C73C2241389A007D243C /* SDL_log.c in Sources */,
 				F3E3C73D2241389A007D243C /* SDL_coreaudio.m in Sources */,
+				564A2A05252BB58C00FE6F26 /* SDL_url.c in Sources */,
 				F3E3C73E2241389A007D243C /* SDL_sensor.c in Sources */,
 				F3E3C73F2241389A007D243C /* SDL_hidapi_switch.c in Sources */,
 				F3E3C7402241389A007D243C /* SDL_uikitviewcontroller.m in Sources */,
@@ -2828,7 +2890,9 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				564A2A07252BB58C00FE6F26 /* SDL_url.c in Sources */,
 				F3E3C75B224138AE007D243C /* SDL_uikit_main.c in Sources */,
+				564A2A01252BB58C00FE6F26 /* SDL_sysurl.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -2849,12 +2913,14 @@
 				FAFDF8C61D88D4530083E6F2 /* SDL_uikitclipboard.m in Sources */,
 				FAB5982C1BB5C31500BE72C5 /* SDL_cpuinfo.c in Sources */,
 				FAB5982F1BB5C31500BE72C5 /* SDL_dynapi.c in Sources */,
+				564A2A04252BB58C00FE6F26 /* SDL_url.c in Sources */,
 				FAB598361BB5C31500BE72C5 /* SDL_clipboardevents.c in Sources */,
 				FAB598381BB5C31500BE72C5 /* SDL_dropevents.c in Sources */,
 				FAB5983A1BB5C31500BE72C5 /* SDL_events.c in Sources */,
 				A7F629241FE06523002F9CC9 /* SDL_uikitmetalview.m in Sources */,
 				FAB5983C1BB5C31500BE72C5 /* SDL_gesture.c in Sources */,
 				FAB5983E1BB5C31500BE72C5 /* SDL_keyboard.c in Sources */,
+				564A29FE252BB58C00FE6F26 /* SDL_sysurl.m in Sources */,
 				F3BDD79520F51CB8004ECBF3 /* SDL_hidapi_switch.c in Sources */,
 				FAB598401BB5C31500BE72C5 /* SDL_mouse.c in Sources */,
 				A704172F20F7E76000A82227 /* SDL_gamecontroller.c in Sources */,
@@ -3047,6 +3113,7 @@
 				F3BDD79620F51CB8004ECBF3 /* SDL_hidapi_xboxone.c in Sources */,
 				56ED04E1118A8EE200A56AA6 /* SDL_power.c in Sources */,
 				56ED04E3118A8EFD00A56AA6 /* SDL_syspower.m in Sources */,
+				564A29FC252BB58C00FE6F26 /* SDL_sysurl.m in Sources */,
 				006E9889119552DD001DE610 /* SDL_rwopsbundlesupport.m in Sources */,
 				044E5FB811E606EB0076F181 /* SDL_clipboard.c in Sources */,
 				0420497111E6F03D007E7EC9 /* SDL_clipboardevents.c in Sources */,
@@ -3072,6 +3139,7 @@
 				0402A85912FE70C600CECEE3 /* SDL_shaders_gles2.c in Sources */,
 				04BAC09D1300C1290055DE28 /* SDL_log.c in Sources */,
 				56EA86FB13E9EC2B002E47EB /* SDL_coreaudio.m in Sources */,
+				564A2A02252BB58C00FE6F26 /* SDL_url.c in Sources */,
 				F30D9CA0212CD0990047DF2E /* SDL_sensor.c in Sources */,
 				F3BDD79420F51CB8004ECBF3 /* SDL_hidapi_switch.c in Sources */,
 				93CB792613FC5F5300BD3E05 /* SDL_uikitviewcontroller.m in Sources */,
diff --git a/Xcode/SDL/SDL.xcodeproj/project.pbxproj b/Xcode/SDL/SDL.xcodeproj/project.pbxproj
index 8a8b36e..b33904c 100644
--- a/Xcode/SDL/SDL.xcodeproj/project.pbxproj
+++ b/Xcode/SDL/SDL.xcodeproj/project.pbxproj
@@ -36,6 +36,34 @@
 		5605721C2473688D00B46B66 /* SDL_syslocale.h in Headers */ = {isa = PBXBuildFile; fileRef = 566E26CE246274CC00718109 /* SDL_syslocale.h */; };
 		5605721D2473688E00B46B66 /* SDL_syslocale.h in Headers */ = {isa = PBXBuildFile; fileRef = 566E26CE246274CC00718109 /* SDL_syslocale.h */; };
 		5605721E2473688F00B46B66 /* SDL_syslocale.h in Headers */ = {isa = PBXBuildFile; fileRef = 566E26CE246274CC00718109 /* SDL_syslocale.h */; };
+		5616CA4C252BB2A6005D5928 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA49252BB2A5005D5928 /* SDL_url.c */; };
+		5616CA4D252BB2A6005D5928 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */; };
+		5616CA4E252BB2A6005D5928 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA4B252BB2A6005D5928 /* SDL_sysurl.m */; };
+		5616CA50252BB2BE005D5928 /* SDL_misc.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4F252BB2BE005D5928 /* SDL_misc.h */; };
+		5616CA51252BB35A005D5928 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */; };
+		5616CA52252BB35A005D5928 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA49252BB2A5005D5928 /* SDL_url.c */; };
+		5616CA53252BB35A005D5928 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA4B252BB2A6005D5928 /* SDL_sysurl.m */; };
+		5616CA54252BB35B005D5928 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */; };
+		5616CA55252BB35B005D5928 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA49252BB2A5005D5928 /* SDL_url.c */; };
+		5616CA56252BB35B005D5928 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA4B252BB2A6005D5928 /* SDL_sysurl.m */; };
+		5616CA57252BB35C005D5928 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */; };
+		5616CA58252BB35C005D5928 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA49252BB2A5005D5928 /* SDL_url.c */; };
+		5616CA59252BB35C005D5928 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA4B252BB2A6005D5928 /* SDL_sysurl.m */; };
+		5616CA5A252BB35D005D5928 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */; };
+		5616CA5B252BB35D005D5928 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA49252BB2A5005D5928 /* SDL_url.c */; };
+		5616CA5C252BB35D005D5928 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA4B252BB2A6005D5928 /* SDL_sysurl.m */; };
+		5616CA5D252BB35E005D5928 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */; };
+		5616CA5E252BB35E005D5928 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA49252BB2A5005D5928 /* SDL_url.c */; };
+		5616CA5F252BB35E005D5928 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA4B252BB2A6005D5928 /* SDL_sysurl.m */; };
+		5616CA60252BB35E005D5928 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */; };
+		5616CA61252BB35E005D5928 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA49252BB2A5005D5928 /* SDL_url.c */; };
+		5616CA62252BB35E005D5928 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA4B252BB2A6005D5928 /* SDL_sysurl.m */; };
+		5616CA63252BB35F005D5928 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */; };
+		5616CA64252BB35F005D5928 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA49252BB2A5005D5928 /* SDL_url.c */; };
+		5616CA65252BB35F005D5928 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA4B252BB2A6005D5928 /* SDL_sysurl.m */; };
+		5616CA66252BB361005D5928 /* SDL_sysurl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */; };
+		5616CA67252BB361005D5928 /* SDL_url.c in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA49252BB2A5005D5928 /* SDL_url.c */; };
+		5616CA68252BB361005D5928 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = 5616CA4B252BB2A6005D5928 /* SDL_sysurl.m */; };
 		562C4AEA1D8F496300AF9EBE /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7381E931D8B69C300B177DD /* AudioToolbox.framework */; };
 		564624361FF821C20074AC87 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 564624351FF821B80074AC87 /* QuartzCore.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
 		564624381FF821DA0074AC87 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 564624371FF821CB0074AC87 /* Metal.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
@@ -4011,6 +4039,10 @@
 		00CFA89C106B4BA100758660 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ForceFeedback.framework; path = System/Library/Frameworks/ForceFeedback.framework; sourceTree = SDKROOT; };
 		00D0D08310675DD9004B05EF /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
 		4D4820431F0F10B400EDC31C /* SDL_vulkan.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDL_vulkan.h; sourceTree = "<group>"; };
+		5616CA49252BB2A5005D5928 /* SDL_url.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_url.c; path = misc/SDL_url.c; sourceTree = "<group>"; };
+		5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_sysurl.h; path = misc/SDL_sysurl.h; sourceTree = "<group>"; };
+		5616CA4B252BB2A6005D5928 /* SDL_sysurl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDL_sysurl.m; path = misc/macosx/SDL_sysurl.m; sourceTree = "<group>"; };
+		5616CA4F252BB2BE005D5928 /* SDL_misc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_misc.h; sourceTree = "<group>"; };
 		564624351FF821B80074AC87 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
 		564624371FF821CB0074AC87 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; };
 		566E26792462701100718109 /* SDL_locale.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_locale.h; sourceTree = "<group>"; };
@@ -4701,6 +4733,7 @@
 				AA7557DE1595D4D800BBD41B /* SDL_main.h */,
 				AA9FF9591637CBF9000DF050 /* SDL_messagebox.h */,
 				FA24348A21D41FFB00B8918A /* SDL_metal.h */,
+				5616CA4F252BB2BE005D5928 /* SDL_misc.h */,
 				AA7557DF1595D4D800BBD41B /* SDL_mouse.h */,
 				AA7557E01595D4D800BBD41B /* SDL_mutex.h */,
 				AA7557E11595D4D800BBD41B /* SDL_name.h */,
@@ -4797,6 +4830,7 @@
 				A7D8A85D23E2513F00DCD162 /* loadso */,
 				566E26CB246274AE00718109 /* locale */,
 				A7D8A5AC23E2513D00DCD162 /* main */,
+				5616CA47252BB278005D5928 /* misc */,
 				A7D8A7DF23E2513F00DCD162 /* power */,
 				A7D8A8DA23E2514000DCD162 /* render */,
 				A7D8A57623E2513D00DCD162 /* sensor */,
@@ -4820,6 +4854,24 @@
 			path = ../../src;
 			sourceTree = "<group>";
 		};
+		5616CA47252BB278005D5928 /* misc */ = {
+			isa = PBXGroup;
+			children = (
+				5616CA4A252BB2A6005D5928 /* SDL_sysurl.h */,
+				5616CA49252BB2A5005D5928 /* SDL_url.c */,
+				5616CA48252BB285005D5928 /* macosx */,
+			);
+			name = misc;
+			sourceTree = "<group>";
+		};
+		5616CA48252BB285005D5928 /* macosx */ = {
+			isa = PBXGroup;
+			children = (
+				5616CA4B252BB2A6005D5928 /* SDL_sysurl.m */,
+			);
+			name = macosx;
+			sourceTree = "<group>";
+		};
 		564624341FF821B70074AC87 /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
@@ -5827,6 +5879,7 @@
 				A75FCD4723E25AB700529352 /* SDL_systhread_c.h in Headers */,
 				A75FCD4823E25AB700529352 /* SDL_keycode.h in Headers */,
 				A75FCD4923E25AB700529352 /* SDL_x11keyboard.h in Headers */,
+				5616CA63252BB35F005D5928 /* SDL_sysurl.h in Headers */,
 				A75FCD4A23E25AB700529352 /* SDL_cocoakeyboard.h in Headers */,
 				A75FCD4B23E25AB700529352 /* SDL_uikitvulkan.h in Headers */,
 				A75FCD4C23E25AB700529352 /* SDL_x11framebuffer.h in Headers */,
@@ -6069,6 +6122,7 @@
 				A75FCF0023E25AC700529352 /* SDL_systhread_c.h in Headers */,
 				A75FCF0123E25AC700529352 /* SDL_keycode.h in Headers */,
 				A75FCF0223E25AC700529352 /* SDL_x11keyboard.h in Headers */,
+				5616CA66252BB361005D5928 /* SDL_sysurl.h in Headers */,
 				A75FCF0323E25AC700529352 /* SDL_cocoakeyboard.h in Headers */,
 				A75FCF0423E25AC700529352 /* SDL_uikitvulkan.h in Headers */,
 				A75FCF0523E25AC700529352 /* SDL_x11framebuffer.h in Headers */,
@@ -6335,6 +6389,7 @@
 				A769B0CE23E259AE00872273 /* SDL_keycode.h in Headers */,
 				A769B0CF23E259AE00872273 /* SDL_x11keyboard.h in Headers */,
 				A769B0D023E259AE00872273 /* SDL_cocoakeyboard.h in Headers */,
+				5616CA5D252BB35E005D5928 /* SDL_sysurl.h in Headers */,
 				A769B0D123E259AE00872273 /* SDL_uikitvulkan.h in Headers */,
 				A769B0D223E259AE00872273 /* SDL_x11framebuffer.h in Headers */,
 				A769B0D323E259AE00872273 /* SDL_x11video.h in Headers */,
@@ -6553,6 +6608,7 @@
 				A7D8AB1D23E2514100DCD162 /* SDL_dynapi_procs.h in Headers */,
 				A7D88A2023E2437C00DCD162 /* SDL_egl.h in Headers */,
 				A7D8ABDA23E2514100DCD162 /* SDL_egl_c.h in Headers */,
+				5616CA51252BB35A005D5928 /* SDL_sysurl.h in Headers */,
 				A7D88A2723E2437C00DCD162 /* SDL_endian.h in Headers */,
 				A7D88A2823E2437C00DCD162 /* SDL_error.h in Headers */,
 				A7D8A95E23E2514000DCD162 /* SDL_error_c.h in Headers */,
@@ -6799,6 +6855,7 @@
 				A7D8AB1E23E2514100DCD162 /* SDL_dynapi_procs.h in Headers */,
 				A7D88BD723E24BED00DCD162 /* SDL_egl.h in Headers */,
 				A7D8ABDB23E2514100DCD162 /* SDL_egl_c.h in Headers */,
+				5616CA54252BB35B005D5928 /* SDL_sysurl.h in Headers */,
 				A7D88BDE23E24BED00DCD162 /* SDL_endian.h in Headers */,
 				A7D88BDF23E24BED00DCD162 /* SDL_error.h in Headers */,
 				A7D8A95F23E2514000DCD162 /* SDL_error_c.h in Headers */,
@@ -7069,6 +7126,7 @@
 				A7D88D3123E24D3B00DCD162 /* SDL_keycode.h in Headers */,
 				A7D8B20A23E2514200DCD162 /* SDL_x11keyboard.h in Headers */,
 				A7D8AE9223E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */,
+				5616CA5A252BB35D005D5928 /* SDL_sysurl.h in Headers */,
 				A7D8ACE523E2514100DCD162 /* SDL_uikitvulkan.h in Headers */,
 				A7D8B1F223E2514200DCD162 /* SDL_x11framebuffer.h in Headers */,
 				A7D8B22223E2514200DCD162 /* SDL_x11video.h in Headers */,
@@ -7242,6 +7300,7 @@
 				A7D8B7A023E2514400DCD162 /* SDL_audio_c.h in Headers */,
 				A7D8B7B223E2514400DCD162 /* SDL_audiodev_c.h in Headers */,
 				AADA5B8716CCAB3000107CF7 /* SDL_bits.h in Headers */,
+				5616CA4D252BB2A6005D5928 /* SDL_sysurl.h in Headers */,
 				A7D8BA0123E2514400DCD162 /* SDL_blendfillrect.h in Headers */,
 				A7D8B9E923E2514400DCD162 /* SDL_blendline.h in Headers */,
 				AA7558041595D4D800BBD41B /* SDL_blendmode.h in Headers */,
@@ -7326,6 +7385,7 @@
 				A7D8ABE523E2514100DCD162 /* SDL_nullframebuffer_c.h in Headers */,
 				A7D8ABF723E2514100DCD162 /* SDL_nullvideo.h in Headers */,
 				A7D8AB5B23E2514100DCD162 /* SDL_offscreenevents_c.h in Headers */,
+				5616CA50252BB2BE005D5928 /* SDL_misc.h in Headers */,
 				A7D8AB7F23E2514100DCD162 /* SDL_offscreenframebuffer_c.h in Headers */,
 				A7D8AB7923E2514100DCD162 /* SDL_offscreenopengl.h in Headers */,
 				A7D8AB6D23E2514100DCD162 /* SDL_offscreenvideo.h in Headers */,
@@ -7697,6 +7757,7 @@
 				A7D8B27523E2514200DCD162 /* vulkan_fuchsia.h in Headers */,
 				AA7558571595D4D800BBD41B /* SDL_touch.h in Headers */,
 				AA7558591595D4D800BBD41B /* SDL_types.h in Headers */,
+				5616CA57252BB35C005D5928 /* SDL_sysurl.h in Headers */,
 				A7D8B57223E2514300DCD162 /* usb_ids.h in Headers */,
 				A7D8BA5823E2514400DCD162 /* SDL_gles2funcs.h in Headers */,
 				A7D8B57E23E2514300DCD162 /* SDL_sysjoystick_c.h in Headers */,
@@ -7938,6 +7999,7 @@
 				A7D8B27723E2514200DCD162 /* vulkan_fuchsia.h in Headers */,
 				DB313FF517554B71006C0E22 /* SDL_touch.h in Headers */,
 				DB313FF617554B71006C0E22 /* SDL_types.h in Headers */,
+				5616CA60252BB35E005D5928 /* SDL_sysurl.h in Headers */,
 				A7D8B57423E2514300DCD162 /* usb_ids.h in Headers */,
 				A7D8BA5A23E2514400DCD162 /* SDL_gles2funcs.h in Headers */,
 				A7D8B58023E2514300DCD162 /* SDL_sysjoystick_c.h in Headers */,
@@ -8497,7 +8559,9 @@
 				A75FCE5123E25AB700529352 /* e_log10.c in Sources */,
 				A75FCE5223E25AB700529352 /* SDL_uikitopenglview.m in Sources */,
 				A75FCE5323E25AB700529352 /* SDL_mixer.c in Sources */,
+				5616CA64252BB35F005D5928 /* SDL_url.c in Sources */,
 				A75FCE5423E25AB700529352 /* SDL_events.c in Sources */,
+				5616CA65252BB35F005D5928 /* SDL_sysurl.m in Sources */,
 				A75FCE5523E25AB700529352 /* SDL_blit_0.c in Sources */,
 				A75FCE5623E25AB700529352 /* k_tan.c in Sources */,
 				A75FCE5723E25AB700529352 /* SDL_x11vulkan.c in Sources */,
@@ -8695,7 +8759,9 @@
 				A75FD00A23E25AC700529352 /* e_log10.c in Sources */,
 				A75FD00B23E25AC700529352 /* SDL_uikitopenglview.m in Sources */,
 				A75FD00C23E25AC700529352 /* SDL_mixer.c in Sources */,
+				5616CA67252BB361005D5928 /* SDL_url.c in Sources */,
 				A75FD00D23E25AC700529352 /* SDL_events.c in Sources */,
+				5616CA68252BB361005D5928 /* SDL_sysurl.m in Sources */,
 				A75FD00E23E25AC700529352 /* SDL_blit_0.c in Sources */,
 				A75FD00F23E25AC700529352 /* k_tan.c in Sources */,
 				A75FD01023E25AC700529352 /* SDL_x11vulkan.c in Sources */,
@@ -8905,6 +8971,7 @@
 				A769B1D123E259AE00872273 /* SDL_x11shape.c in Sources */,
 				A769B1D223E259AE00872273 /* imKStoUCS.c in Sources */,
 				A769B1D323E259AE00872273 /* SDL_shaders_metal.metal in Sources */,
+				5616CA5E252BB35E005D5928 /* SDL_url.c in Sources */,
 				A769B1D423E259AE00872273 /* SDL_uikitwindow.m in Sources */,
 				A769B1D523E259AE00872273 /* SDL_render.c in Sources */,
 				A769B1D623E259AE00872273 /* SDL_stretch.c in Sources */,
@@ -8934,6 +9001,7 @@
 				A769B1EE23E259AE00872273 /* SDL_dummysensor.c in Sources */,
 				A769B1EF23E259AE00872273 /* SDL_string.c in Sources */,
 				A769B1F023E259AE00872273 /* SDL_render_gl.c in Sources */,
+				5616CA5F252BB35E005D5928 /* SDL_sysurl.m in Sources */,
 				A769B1F123E259AE00872273 /* SDL_uikitopengles.m in Sources */,
 				A769B1F223E259AE00872273 /* SDL_x11opengles.c in Sources */,
 				A769B1F323E259AE00872273 /* SDL_cocoamodes.m in Sources */,
@@ -9095,6 +9163,8 @@
 				A7D8AA6623E2514000DCD162 /* SDL_hints.c in Sources */,
 				A7D8B54023E2514300DCD162 /* SDL_hidapi_ps4.c in Sources */,
 				A7D8AD6F23E2514100DCD162 /* SDL_pixels.c in Sources */,
+				5616CA52252BB35A005D5928 /* SDL_url.c in Sources */,
+				5616CA53252BB35A005D5928 /* SDL_sysurl.m in Sources */,
 				A7D8B1A123E2514200DCD162 /* SDL_x11clipboard.c in Sources */,
 				A7D8B75F23E2514300DCD162 /* SDL_sysloadso.c in Sources */,
 				A7D8B16B23E2514200DCD162 /* SDL_x11xinput2.c in Sources */,
@@ -9292,6 +9362,8 @@
 				A7D8B54123E2514300DCD162 /* SDL_hidapi_ps4.c in Sources */,
 				A7D8AD7023E2514100DCD162 /* SDL_pixels.c in Sources */,
 				A7D8B1A223E2514200DCD162 /* SDL_x11clipboard.c in Sources */,
+				5616CA55252BB35B005D5928 /* SDL_url.c in Sources */,
+				5616CA56252BB35B005D5928 /* SDL_sysurl.m in Sources */,
 				A7D8B76023E2514300DCD162 /* SDL_sysloadso.c in Sources */,
 				A7D8B16C23E2514200DCD162 /* SDL_x11xinput2.c in Sources */,
 				A7D8B5F523E2514300DCD162 /* SDL_syspower.c in Sources */,
@@ -9498,6 +9570,7 @@
 				A7D8B1E623E2514200DCD162 /* SDL_x11shape.c in Sources */,
 				A7D8B19823E2514200DCD162 /* imKStoUCS.c in Sources */,
 				A7D8B99623E2514400DCD162 /* SDL_shaders_metal.metal in Sources */,
+				5616CA5B252BB35D005D5928 /* SDL_url.c in Sources */,
 				A7D8AC4F23E2514100DCD162 /* SDL_uikitwindow.m in Sources */,
 				A7D8B97E23E2514400DCD162 /* SDL_render.c in Sources */,
 				A7D8ABD723E2514100DCD162 /* SDL_stretch.c in Sources */,
@@ -9527,6 +9600,7 @@
 				A7D8A96D23E2514000DCD162 /* SDL_dummysensor.c in Sources */,
 				A7D8B96023E2514400DCD162 /* SDL_string.c in Sources */,
 				A7D8BA8323E2514400DCD162 /* SDL_render_gl.c in Sources */,
+				5616CA5C252BB35D005D5928 /* SDL_sysurl.m in Sources */,
 				A7D8AC8523E2514100DCD162 /* SDL_uikitopengles.m in Sources */,
 				A7D8B20423E2514200DCD162 /* SDL_x11opengles.c in Sources */,
 				A7D8AE9823E2514100DCD162 /* SDL_cocoamodes.m in Sources */,
@@ -9617,6 +9691,7 @@
 				A7D8B3AA23E2514200DCD162 /* SDL_shape.c in Sources */,
 				A7D8B9F523E2514400DCD162 /* SDL_rotate.c in Sources */,
 				A7D8BBE323E2574800DCD162 /* SDL_uikitvideo.m in Sources */,
+				5616CA4E252BB2A6005D5928 /* SDL_sysurl.m in Sources */,
 				A7D8A97523E2514000DCD162 /* SDL_coremotionsensor.m in Sources */,
 				A7D8BB8D23E2514500DCD162 /* SDL_touch.c in Sources */,
 				A7D8B19A23E2514200DCD162 /* SDL_x11events.c in Sources */,
@@ -9685,6 +9760,7 @@
 				A7D8BA9123E2514400DCD162 /* s_cos.c in Sources */,
 				A7D8B9D123E2514400DCD162 /* SDL_yuv_sw.c in Sources */,
 				A7D8B76A23E2514300DCD162 /* SDL_wave.c in Sources */,
+				5616CA4C252BB2A6005D5928 /* SDL_url.c in Sources */,
 				A7D8BAD323E2514500DCD162 /* s_tan.c in Sources */,
 				A7D8AA6523E2514000DCD162 /* SDL_hints.c in Sources */,
 				A7D8B53F23E2514300DCD162 /* SDL_hidapi_ps4.c in Sources */,
@@ -9815,6 +9891,7 @@
 				A7D8B19D23E2514200DCD162 /* SDL_x11events.c in Sources */,
 				A7D8B3F523E2514300DCD162 /* SDL_thread.c in Sources */,
 				A7D8B56023E2514300DCD162 /* SDL_hidapi_xbox360w.c in Sources */,
+				5616CA59252BB35C005D5928 /* SDL_sysurl.m in Sources */,
 				A7D8A95A23E2514000DCD162 /* SDL_atomic.c in Sources */,
 				A75FDBD123EA380300529352 /* SDL_hidapi_rumble.c in Sources */,
 				A7D8BB2A23E2514500DCD162 /* SDL_displayevents.c in Sources */,
@@ -9824,6 +9901,7 @@
 				A7D8BC0223E2574800DCD162 /* SDL_uikitviewcontroller.m in Sources */,
 				A7D8AE8B23E2514100DCD162 /* SDL_cocoaopengl.m in Sources */,
 				A7D8AB7623E2514100DCD162 /* SDL_offscreenframebuffer.c in Sources */,
+				5616CA58252BB35C005D5928 /* SDL_url.c in Sources */,
 				A7D8B3C223E2514200DCD162 /* yuv_rgb.c in Sources */,
 				A7D8BA4023E2514400DCD162 /* SDL_render_gles.c in Sources */,
 				A7D8B43723E2514300DCD162 /* SDL_systhread.c in Sources */,
@@ -10011,6 +10089,7 @@
 				A7D8AC5623E2514100DCD162 /* SDL_uikitmessagebox.m in Sources */,
 				A7D8B3F723E2514300DCD162 /* SDL_thread.c in Sources */,
 				A7D8B56223E2514300DCD162 /* SDL_hidapi_xbox360w.c in Sources */,
+				5616CA62252BB35E005D5928 /* SDL_sysurl.m in Sources */,
 				A7D8A95C23E2514000DCD162 /* SDL_atomic.c in Sources */,
 				A75FDBD423EA380300529352 /* SDL_hidapi_rumble.c in Sources */,
 				A7D8BB2C23E2514500DCD162 /* SDL_displayevents.c in Sources */,
@@ -10020,6 +10099,7 @@
 				A7D8AB7823E2514100DCD162 /* SDL_offscreenframebuffer.c in Sources */,
 				A7D8B3C423E2514200DCD162 /* yuv_rgb.c in Sources */,
 				A7D8BA4223E2514400DCD162 /* SDL_render_gles.c in Sources */,
+				5616CA61252BB35E005D5928 /* SDL_url.c in Sources */,
 				A7D8B43923E2514300DCD162 /* SDL_systhread.c in Sources */,
 				A7D8BB3823E2514500DCD162 /* SDL_windowevents.c in Sources */,
 				A7D8BAC023E2514500DCD162 /* s_scalbn.c in Sources */,
diff --git a/src/misc/ios/SDL_sysurl.m b/src/misc/ios/SDL_sysurl.m
index 44111a8..c7a5207 100644
--- a/src/misc/ios/SDL_sysurl.m
+++ b/src/misc/ios/SDL_sysurl.m
@@ -21,6 +21,8 @@
 
 #include "../SDL_sysurl.h"
 
+#import <UIKit/UIKit.h>
+
 int
 SDL_SYS_OpenURL(const char *url)
 { @autoreleasepool {