Skip to content

Commit 49d633d

Browse files
LibretroAdminJoeMatt
authored andcommitted
Cleanup snprintf party
1 parent 9983737 commit 49d633d

1 file changed

Lines changed: 136 additions & 100 deletions

File tree

libretro.c

Lines changed: 136 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,12 @@
22
#include <stdlib.h>
33
#include <string.h>
44
#include <libretro.h>
5+
56
#include <libretro_core_options.h>
67
#include <streams/file_stream.h>
8+
#include <compat/posix_string.h>
9+
#include <compat/strl.h>
10+
711
#include "file.h"
812
#include "jagbios.h"
913
#include "jagbios2.h"
@@ -153,58 +157,110 @@ static bool update_option_visibility(void)
153157

154158
for (i = 0; i < 2; i++)
155159
{
160+
char base[20];
156161
char key[64];
157-
option_display.key = key;
162+
size_t _len = strlcpy(base, "virtualjaguar_p", sizeof(base));
163+
snprintf(base + _len, sizeof(base) - _len, "%d", i + 1);
158164

159-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_numpad_to_kb");
165+
strlcpy(key, base, sizeof(key));
166+
strlcat(key, "_numpad_to_kb", sizeof(key));
167+
option_display.key = key;
160168
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
161-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_up");
169+
170+
strlcpy(key, base, sizeof(key));
171+
strlcat(key, "_retropad_up", sizeof(key));
162172
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
163-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_down");
173+
174+
strlcpy(key, base, sizeof(key));
175+
strlcat(key, "_retropad_down", sizeof(key));
164176
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
165-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_left");
177+
178+
strlcpy(key, base, sizeof(key));
179+
strlcat(key, "_retropad_left", sizeof(key));
166180
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
167-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_right");
181+
182+
strlcpy(key, base, sizeof(key));
183+
strlcat(key, "_retropad_right", sizeof(key));
168184
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
169-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_a");
185+
186+
strlcpy(key, base, sizeof(key));
187+
strlcat(key, "_retropad_a", sizeof(key));
170188
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
171-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_b");
189+
190+
strlcpy(key, base, sizeof(key));
191+
strlcat(key, "_retropad_b", sizeof(key));
172192
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
173-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_x");
193+
194+
strlcpy(key, base, sizeof(key));
195+
strlcat(key, "_retropad_x", sizeof(key));
174196
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
175-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_y");
197+
198+
strlcpy(key, base, sizeof(key));
199+
strlcat(key, "_retropad_y", sizeof(key));
176200
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
177-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_select");
201+
202+
strlcpy(key, base, sizeof(key));
203+
strlcat(key, "_retropad_select", sizeof(key));
178204
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
179-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_start");
205+
206+
strlcpy(key, base, sizeof(key));
207+
strlcat(key, "_retropad_start", sizeof(key));
180208
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
181-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_l1");
209+
210+
strlcpy(key, base, sizeof(key));
211+
strlcat(key, "_retropad_l1", sizeof(key));
182212
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
183-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_r1");
213+
214+
strlcpy(key, base, sizeof(key));
215+
strlcat(key, "_retropad_r1", sizeof(key));
184216
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
185-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_l2");
217+
218+
strlcpy(key, base, sizeof(key));
219+
strlcat(key, "_retropad_l2", sizeof(key));
186220
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
187-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_r2");
221+
222+
strlcpy(key, base, sizeof(key));
223+
strlcat(key, "_retropad_r2", sizeof(key));
188224
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
189-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_l3");
225+
226+
strlcpy(key, base, sizeof(key));
227+
strlcat(key, "_retropad_l3", sizeof(key));
190228
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
191-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_r3");
229+
230+
strlcpy(key, base, sizeof(key));
231+
strlcat(key, "_retropad_r3", sizeof(key));
192232
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
193-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_analog_lu");
233+
234+
strlcpy(key, base, sizeof(key));
235+
strlcat(key, "_retropad_analog_lu", sizeof(key));
194236
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
195-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_analog_ld");
237+
238+
strlcpy(key, base, sizeof(key));
239+
strlcat(key, "_retropad_analog_ld", sizeof(key));
196240
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
197-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_analog_ll");
241+
242+
strlcpy(key, base, sizeof(key));
243+
strlcat(key, "_retropad_analog_ll", sizeof(key));
198244
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
199-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_analog_lr");
245+
246+
strlcpy(key, base, sizeof(key));
247+
strlcat(key, "_retropad_analog_lr", sizeof(key));
200248
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
201-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_analog_ru");
249+
250+
strlcpy(key, base, sizeof(key));
251+
strlcat(key, "_retropad_analog_ru", sizeof(key));
202252
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
203-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_analog_rd");
253+
254+
strlcpy(key, base, sizeof(key));
255+
strlcat(key, "_retropad_analog_rd", sizeof(key));
204256
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
205-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_analog_rl");
257+
258+
strlcpy(key, base, sizeof(key));
259+
strlcat(key, "_retropad_analog_rl", sizeof(key));
206260
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
207-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_analog_rr");
261+
262+
strlcpy(key, base, sizeof(key));
263+
strlcat(key, "_retropad_analog_rr", sizeof(key));
208264
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
209265
}
210266

@@ -291,10 +347,14 @@ static void check_variables(void)
291347

292348
for (i = 0; i < 2; i++)
293349
{
350+
char base[20];
294351
char key[64];
295-
var.key = key;
352+
size_t _len = strlcpy(base, "virtualjaguar_p", sizeof(base));
353+
snprintf(base + _len, sizeof(base) - _len, "%d", i + 1);
296354

297-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_numpad_to_kb");
355+
strlcpy(key, base, sizeof(key));
356+
strlcat(key, "_numpad_to_kb", sizeof(key));
357+
var.key = key;
298358
var.value = NULL;
299359
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
300360
{
@@ -306,173 +366,149 @@ static void check_variables(void)
306366
numpad_to_kb[i] = 2;
307367
}
308368

309-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_up");
369+
strlcpy(key, base, sizeof(key));
370+
strlcat(key, "_retropad_up", sizeof(key));
310371
var.value = NULL;
311372
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
312-
{
313373
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_UP] = get_button_id(var.value);
314-
}
315374

316-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_down");
375+
strlcpy(key, base, sizeof(key));
376+
strlcat(key, "_retropad_down", sizeof(key));
317377
var.value = NULL;
318378
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
319-
{
320379
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_DOWN] = get_button_id(var.value);
321-
}
322380

323-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_left");
381+
strlcpy(key, base, sizeof(key));
382+
strlcat(key, "_retropad_left", sizeof(key));
324383
var.value = NULL;
325384
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
326-
{
327385
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_LEFT] = get_button_id(var.value);
328-
}
329386

330-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_right");
387+
strlcpy(key, base, sizeof(key));
388+
strlcat(key, "_retropad_right", sizeof(key));
331389
var.value = NULL;
332390
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
333-
{
334391
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_RIGHT] = get_button_id(var.value);
335-
}
336392

337-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_a");
393+
strlcpy(key, base, sizeof(key));
394+
strlcat(key, "_retropad_a", sizeof(key));
338395
var.value = NULL;
339396
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
340-
{
341397
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_A] = get_button_id(var.value);
342-
}
343398

344-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_b");
399+
strlcpy(key, base, sizeof(key));
400+
strlcat(key, "_retropad_b", sizeof(key));
345401
var.value = NULL;
346402
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
347-
{
348403
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_B] = get_button_id(var.value);
349-
}
350404

351-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_y");
405+
strlcpy(key, base, sizeof(key));
406+
strlcat(key, "_retropad_y", sizeof(key));
352407
var.value = NULL;
353408
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
354-
{
355409
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_Y] = get_button_id(var.value);
356-
}
357410

358-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_select");
411+
strlcpy(key, base, sizeof(key));
412+
strlcat(key, "_retropad_select", sizeof(key));
359413
var.value = NULL;
360414
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
361-
{
362415
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_SELECT] = get_button_id(var.value);
363-
}
364416

365-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_start");
417+
strlcpy(key, base, sizeof(key));
418+
strlcat(key, "_retropad_start", sizeof(key));
366419
var.value = NULL;
367420
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
368-
{
369421
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_START] = get_button_id(var.value);
370-
}
371422

372-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_x");
423+
strlcpy(key, base, sizeof(key));
424+
strlcat(key, "_retropad_x", sizeof(key));
373425
var.value = NULL;
374426
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
375-
{
376427
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_X] = get_button_id(var.value);
377-
}
378428

379-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_l1");
429+
strlcpy(key, base, sizeof(key));
430+
strlcat(key, "_retropad_l1", sizeof(key));
380431
var.value = NULL;
381432
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
382-
{
383433
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_L] = get_button_id(var.value);
384-
}
385434

386-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_r1");
435+
strlcpy(key, base, sizeof(key));
436+
strlcat(key, "_retropad_r1", sizeof(key));
387437
var.value = NULL;
388438
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
389-
{
390439
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_R] = get_button_id(var.value);
391-
}
392440

393-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_l2");
441+
strlcpy(key, base, sizeof(key));
442+
strlcat(key, "_retropad_l2", sizeof(key));
394443
var.value = NULL;
395444
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
396-
{
397445
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_L2] = get_button_id(var.value);
398-
}
399446

400-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_r2");
447+
strlcpy(key, base, sizeof(key));
448+
strlcat(key, "_retropad_r2", sizeof(key));
401449
var.value = NULL;
402450
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
403-
{
404451
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_R2] = get_button_id(var.value);
405-
}
406452

407-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_l3");
453+
strlcpy(key, base, sizeof(key));
454+
strlcat(key, "_retropad_l3", sizeof(key));
408455
var.value = NULL;
409456
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
410-
{
411457
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_L3] = get_button_id(var.value);
412-
}
413458

414-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_r3");
459+
strlcpy(key, base, sizeof(key));
460+
strlcat(key, "_retropad_r3", sizeof(key));
415461
var.value = NULL;
416462
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
417-
{
418463
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_R3] = get_button_id(var.value);
419-
}
420464

421-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_analog_lu");
465+
strlcpy(key, base, sizeof(key));
466+
strlcat(key, "_retropad_analog_lu", sizeof(key));
422467
var.value = NULL;
423468
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
424-
{
425469
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_LU] = get_button_id(var.value);
426-
}
427470

428-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_analog_ld");
471+
strlcpy(key, base, sizeof(key));
472+
strlcat(key, "_retropad_analog_ld", sizeof(key));
429473
var.value = NULL;
430474
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
431-
{
432475
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_LD] = get_button_id(var.value);
433-
}
434476

435-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_analog_ll");
477+
strlcpy(key, base, sizeof(key));
478+
strlcat(key, "_retropad_analog_ll", sizeof(key));
436479
var.value = NULL;
437480
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
438-
{
439481
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_LL] = get_button_id(var.value);
440-
}
441482

442-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_analog_lr");
483+
strlcpy(key, base, sizeof(key));
484+
strlcat(key, "_retropad_analog_lr", sizeof(key));
443485
var.value = NULL;
444486
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
445-
{
446487
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_LR] = get_button_id(var.value);
447-
}
448488

449-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_analog_ru");
489+
strlcpy(key, base, sizeof(key));
490+
strlcat(key, "_retropad_analog_ru", sizeof(key));
450491
var.value = NULL;
451492
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
452-
{
453493
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_RU] = get_button_id(var.value);
454-
}
455494

456-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_analog_rd");
495+
strlcpy(key, base, sizeof(key));
496+
strlcat(key, "_retropad_analog_rd", sizeof(key));
457497
var.value = NULL;
458498
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
459-
{
460499
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_RD] = get_button_id(var.value);
461-
}
462500

463-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_analog_rl");
501+
strlcpy(key, base, sizeof(key));
502+
strlcat(key, "_retropad_analog_rl", sizeof(key));
464503
var.value = NULL;
465504
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
466-
{
467505
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_RL] = get_button_id(var.value);
468-
}
469506

470-
snprintf(key, sizeof(key), "%s%d%s", "virtualjaguar_p", i + 1, "_retropad_analog_rr");
507+
strlcpy(key, base, sizeof(key));
508+
strlcat(key, "_retropad_analog_rr", sizeof(key));
471509
var.value = NULL;
472510
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
473-
{
474511
jag_retropad[i][RETRO_DEVICE_ID_JOYPAD_RR] = get_button_id(var.value);
475-
}
476512
}
477513

478514
update_option_visibility();

0 commit comments

Comments
 (0)