@@ -2222,7 +2222,8 @@ struct string_list *dir_list_new_special(const char *input_dir,
2222
2222
type == DIR_LIST_CORE_INFO , recursive );
2223
2223
}
2224
2224
2225
- struct string_list * string_list_new_special (enum string_list_type type ,
2225
+ static struct string_list * string_list_new_special (
2226
+ enum string_list_type type ,
2226
2227
void * data , unsigned * len , size_t * list_size )
2227
2228
{
2228
2229
union string_list_elem_attr attr ;
@@ -2506,22 +2507,17 @@ char *path_get_ptr(enum rarch_path_type type)
2506
2507
const char * path_get (enum rarch_path_type type )
2507
2508
{
2508
2509
struct rarch_state * p_rarch = & rarch_st ;
2509
- runloop_state_t * runloop_st = runloop_state_get_ptr ();
2510
2510
2511
2511
switch (type )
2512
2512
{
2513
2513
case RARCH_PATH_CONTENT :
2514
2514
return p_rarch -> path_content ;
2515
2515
case RARCH_PATH_DEFAULT_SHADER_PRESET :
2516
2516
return p_rarch -> path_default_shader_preset ;
2517
- case RARCH_PATH_BASENAME :
2518
- return runloop_st -> runtime_content_path_basename ;
2519
2517
case RARCH_PATH_CORE_OPTIONS :
2520
2518
if (!path_is_empty (RARCH_PATH_CORE_OPTIONS ))
2521
2519
return p_rarch -> path_core_options_file ;
2522
2520
break ;
2523
- case RARCH_PATH_SUBSYSTEM :
2524
- return runloop_st -> subsystem_path ;
2525
2521
case RARCH_PATH_CONFIG :
2526
2522
if (!path_is_empty (RARCH_PATH_CONFIG ))
2527
2523
return p_rarch -> path_config_file ;
@@ -2539,6 +2535,10 @@ const char *path_get(enum rarch_path_type type)
2539
2535
case RARCH_PATH_NONE :
2540
2536
case RARCH_PATH_NAMES :
2541
2537
break ;
2538
+ case RARCH_PATH_BASENAME :
2539
+ return runloop_state_get_ptr ()-> runtime_content_path_basename ;
2540
+ case RARCH_PATH_SUBSYSTEM :
2541
+ return runloop_state_get_ptr ()-> subsystem_path ;
2542
2542
}
2543
2543
2544
2544
return NULL ;
@@ -2554,12 +2554,8 @@ size_t path_get_realsize(enum rarch_path_type type)
2554
2554
return sizeof (p_rarch -> path_content );
2555
2555
case RARCH_PATH_DEFAULT_SHADER_PRESET :
2556
2556
return sizeof (p_rarch -> path_default_shader_preset );
2557
- case RARCH_PATH_BASENAME :
2558
- return sizeof (runloop_state_get_ptr ()-> runtime_content_path_basename );
2559
2557
case RARCH_PATH_CORE_OPTIONS :
2560
2558
return sizeof (p_rarch -> path_core_options_file );
2561
- case RARCH_PATH_SUBSYSTEM :
2562
- return sizeof (runloop_state_get_ptr ()-> subsystem_path );
2563
2559
case RARCH_PATH_CONFIG :
2564
2560
return sizeof (p_rarch -> path_config_file );
2565
2561
case RARCH_PATH_CONFIG_APPEND :
@@ -2571,6 +2567,10 @@ size_t path_get_realsize(enum rarch_path_type type)
2571
2567
case RARCH_PATH_NONE :
2572
2568
case RARCH_PATH_NAMES :
2573
2569
break ;
2570
+ case RARCH_PATH_BASENAME :
2571
+ return sizeof (runloop_state_get_ptr ()-> runtime_content_path_basename );
2572
+ case RARCH_PATH_SUBSYSTEM :
2573
+ return sizeof (runloop_state_get_ptr ()-> subsystem_path );
2574
2574
}
2575
2575
2576
2576
return 0 ;
@@ -2620,6 +2620,8 @@ bool path_set(enum rarch_path_type type, const char *path)
2620
2620
strlcpy (p_rarch -> path_content , path ,
2621
2621
sizeof (p_rarch -> path_content ));
2622
2622
break ;
2623
+ case RARCH_PATH_NONE :
2624
+ break ;
2623
2625
case RARCH_PATH_BASENAME :
2624
2626
runloop_st = runloop_state_get_ptr ();
2625
2627
strlcpy (runloop_st -> runtime_content_path_basename , path ,
@@ -2630,8 +2632,6 @@ bool path_set(enum rarch_path_type type, const char *path)
2630
2632
strlcpy (runloop_st -> subsystem_path , path ,
2631
2633
sizeof (runloop_st -> subsystem_path ));
2632
2634
break ;
2633
- case RARCH_PATH_NONE :
2634
- break ;
2635
2635
}
2636
2636
2637
2637
return true;
@@ -3060,7 +3060,7 @@ bool command_event(enum event_command cmd, void *data)
3060
3060
#endif
3061
3061
video_driver_state_t * video_st = video_state_get_ptr ();
3062
3062
settings_t * settings = config_get_ptr ();
3063
- recording_state_t * recording_st = recording_state_get_ptr ();
3063
+ recording_state_t * rec_st = recording_state_get_ptr ();
3064
3064
3065
3065
switch (cmd )
3066
3066
{
@@ -3186,7 +3186,7 @@ bool command_event(enum event_command cmd, void *data)
3186
3186
break ;
3187
3187
}
3188
3188
case CMD_EVENT_STREAMING_TOGGLE :
3189
- if (recording_st -> streaming_enable )
3189
+ if (rec_st -> streaming_enable )
3190
3190
command_event (CMD_EVENT_RECORD_DEINIT , NULL );
3191
3191
else
3192
3192
{
@@ -3296,7 +3296,7 @@ bool command_event(enum event_command cmd, void *data)
3296
3296
#endif
3297
3297
break ;
3298
3298
case CMD_EVENT_RECORDING_TOGGLE :
3299
- if (recording_st -> enable )
3299
+ if (rec_st -> enable )
3300
3300
command_event (CMD_EVENT_RECORD_DEINIT , NULL );
3301
3301
else
3302
3302
command_event (CMD_EVENT_RECORD_INIT , NULL );
@@ -3338,7 +3338,7 @@ bool command_event(enum event_command cmd, void *data)
3338
3338
{
3339
3339
rarch_system_info_t * sys_info = & runloop_st -> system ;
3340
3340
struct retro_system_info * sysinfo = & sys_info -> info ;
3341
- const char * core_path = path_get ( RARCH_PATH_CORE ) ;
3341
+ const char * core_path = p_rarch -> path_libretro ;
3342
3342
3343
3343
#if defined(HAVE_DYNAMIC )
3344
3344
if (string_is_empty (core_path ))
@@ -3596,7 +3596,7 @@ bool command_event(enum event_command cmd, void *data)
3596
3596
const char * dir_screenshot = settings -> paths .directory_screenshot ;
3597
3597
video_driver_state_t * video_st = video_state_get_ptr ();
3598
3598
if (!take_screenshot (dir_screenshot ,
3599
- path_get ( RARCH_PATH_BASENAME ) ,
3599
+ runloop_st -> runtime_content_path_basename ,
3600
3600
false,
3601
3601
video_st -> frame_cache_data && (video_st -> frame_cache_data == RETRO_HW_FRAME_BUFFER_VALID ),
3602
3602
false,
@@ -4018,13 +4018,13 @@ bool command_event(enum event_command cmd, void *data)
4018
4018
#endif
4019
4019
break ;
4020
4020
case CMD_EVENT_RECORD_DEINIT :
4021
- recording_st -> enable = false;
4021
+ rec_st -> enable = false;
4022
4022
streaming_set_state (false);
4023
4023
if (!recording_deinit ())
4024
4024
return false;
4025
4025
break ;
4026
4026
case CMD_EVENT_RECORD_INIT :
4027
- recording_st -> enable = true;
4027
+ rec_st -> enable = true;
4028
4028
if (!recording_init ())
4029
4029
{
4030
4030
command_event (CMD_EVENT_RECORD_DEINIT , NULL );
@@ -4610,7 +4610,7 @@ bool command_event(enum event_command cmd, void *data)
4610
4610
#ifdef HAVE_CONFIGFILE
4611
4611
if (!command_event_save_core_config (
4612
4612
settings -> paths .directory_menu_config ,
4613
- path_get ( RARCH_PATH_CONFIG ) ))
4613
+ p_rarch -> path_config_file ))
4614
4614
return false;
4615
4615
#endif
4616
4616
break ;
@@ -5784,8 +5784,8 @@ void main_exit(void *args)
5784
5784
#endif
5785
5785
frontend_driver_deinit (args );
5786
5786
frontend_driver_exitspawn (
5787
- path_get_ptr ( RARCH_PATH_CORE ) ,
5788
- path_get_realsize ( RARCH_PATH_CORE ),
5787
+ p_rarch -> path_libretro ,
5788
+ sizeof ( p_rarch -> path_libretro ),
5789
5789
p_rarch -> launch_arguments );
5790
5790
5791
5791
p_rarch -> flags &= ~RARCH_FLAGS_HAS_SET_USERNAME ;
@@ -6567,7 +6567,9 @@ static void retroarch_print_help(const char *arg0)
6567
6567
}
6568
6568
6569
6569
#ifdef HAVE_DYNAMIC
6570
- static void retroarch_parse_input_libretro_path (const char * path , size_t path_len )
6570
+ static void retroarch_parse_input_libretro_path (
6571
+ struct rarch_state * p_rarch ,
6572
+ const char * path , size_t path_len )
6571
6573
{
6572
6574
settings_t * settings = config_get_ptr ();
6573
6575
int path_stats = 0 ;
@@ -6709,7 +6711,8 @@ static void retroarch_parse_input_libretro_path(const char *path, size_t path_le
6709
6711
end :
6710
6712
if (!string_is_empty (core_path ))
6711
6713
{
6712
- path_set (RARCH_PATH_CORE , core_path );
6714
+ strlcpy (p_rarch -> path_libretro , core_path ,
6715
+ sizeof (p_rarch -> path_libretro ));
6713
6716
retroarch_override_setting_set (RARCH_OVERRIDE_SETTING_LIBRETRO , NULL );
6714
6717
6715
6718
/* We requested an explicit core, so use PLAIN core type. */
@@ -6753,7 +6756,7 @@ static bool retroarch_parse_input_and_config(
6753
6756
bool cli_active = false;
6754
6757
bool cli_core_set = false;
6755
6758
bool cli_content_set = false;
6756
- recording_state_t * recording_st = recording_state_get_ptr ();
6759
+ recording_state_t * rec_st = recording_state_get_ptr ();
6757
6760
video_driver_state_t * video_st = video_state_get_ptr ();
6758
6761
runloop_state_t * runloop_st = runloop_state_get_ptr ();
6759
6762
settings_t * settings = config_get_ptr ();
@@ -6956,10 +6959,12 @@ static bool retroarch_parse_input_and_config(
6956
6959
6957
6960
#ifdef HAVE_CONFIGFILE
6958
6961
case 'c' :
6959
- path_set (RARCH_PATH_CONFIG , optarg );
6962
+ strlcpy (p_rarch -> path_config_file , optarg ,
6963
+ sizeof (p_rarch -> path_config_file ));
6960
6964
break ;
6961
6965
case RA_OPT_APPENDCONFIG :
6962
- path_set (RARCH_PATH_CONFIG_APPEND , optarg );
6966
+ strlcpy (p_rarch -> path_config_append_file , optarg ,
6967
+ sizeof (p_rarch -> path_config_append_file ));
6963
6968
break ;
6964
6969
#endif
6965
6970
@@ -7145,10 +7150,9 @@ static bool retroarch_parse_input_and_config(
7145
7150
break ;
7146
7151
7147
7152
case 'r' :
7148
- strlcpy (recording_st -> path , optarg ,
7149
- sizeof (recording_st -> path ));
7150
- if (recording_st -> enable )
7151
- recording_st -> enable = true;
7153
+ strlcpy (rec_st -> path , optarg , sizeof (rec_st -> path ));
7154
+ if (rec_st -> enable )
7155
+ rec_st -> enable = true;
7152
7156
break ;
7153
7157
7154
7158
case RA_OPT_SET_SHADER :
@@ -7173,7 +7177,7 @@ static bool retroarch_parse_input_and_config(
7173
7177
7174
7178
#ifdef HAVE_DYNAMIC
7175
7179
case 'L' :
7176
- retroarch_parse_input_libretro_path (optarg , strlen (optarg ));
7180
+ retroarch_parse_input_libretro_path (p_rarch , optarg , strlen (optarg ));
7177
7181
break ;
7178
7182
#endif
7179
7183
case 'P' :
@@ -7324,8 +7328,7 @@ static bool retroarch_parse_input_and_config(
7324
7328
7325
7329
case RA_OPT_SIZE :
7326
7330
if (sscanf (optarg , "%ux%u" ,
7327
- & recording_st -> width ,
7328
- & recording_st -> height ) != 2 )
7331
+ & rec_st -> width , & rec_st -> height ) != 2 )
7329
7332
{
7330
7333
RARCH_ERR ("Wrong format for --size.\n" );
7331
7334
retroarch_print_help (argv [0 ]);
@@ -7334,8 +7337,7 @@ static bool retroarch_parse_input_and_config(
7334
7337
break ;
7335
7338
7336
7339
case RA_OPT_RECORDCONFIG :
7337
- strlcpy (recording_st -> config , optarg ,
7338
- sizeof (recording_st -> config ));
7340
+ strlcpy (rec_st -> config , optarg , sizeof (rec_st -> config ));
7339
7341
break ;
7340
7342
7341
7343
case RA_OPT_MAX_FRAMES :
@@ -7357,7 +7359,8 @@ static bool retroarch_parse_input_and_config(
7357
7359
break ;
7358
7360
7359
7361
case RA_OPT_SUBSYSTEM :
7360
- path_set (RARCH_PATH_SUBSYSTEM , optarg );
7362
+ strlcpy (runloop_st -> subsystem_path , optarg ,
7363
+ sizeof (runloop_st -> subsystem_path ));
7361
7364
break ;
7362
7365
7363
7366
case RA_OPT_EOF_EXIT :
@@ -7479,7 +7482,12 @@ static bool retroarch_parse_input_and_config(
7479
7482
runloop_set_current_core_type (CORE_TYPE_PLAIN , false);
7480
7483
7481
7484
if (subsystem_path_is_empty )
7482
- path_set (RARCH_PATH_NAMES , (const char * )argv [optind ]);
7485
+ {
7486
+ runloop_path_set_basename ((const char * )argv [optind ]);
7487
+ runloop_path_set_names ();
7488
+ runloop_path_set_redirect (settings , p_rarch -> dir_savefile ,
7489
+ p_rarch -> dir_savestate );
7490
+ }
7483
7491
else
7484
7492
runloop_path_set_special (argv + optind , argc - optind );
7485
7493
@@ -7581,8 +7589,7 @@ bool retroarch_main_init(int argc, char *argv[])
7581
7589
* input_st = input_state_get_ptr ();
7582
7590
video_driver_state_t * video_st = video_state_get_ptr ();
7583
7591
settings_t * settings = config_get_ptr ();
7584
- recording_state_t
7585
- * recording_st = recording_state_get_ptr ();
7592
+ recording_state_t * rec_st = recording_state_get_ptr ();
7586
7593
global_t * global = global_get_ptr ();
7587
7594
#ifdef HAVE_ACCESSIBILITY
7588
7595
access_state_t * access_st = access_state_get_ptr ();
@@ -7704,7 +7711,7 @@ bool retroarch_main_init(int argc, char *argv[])
7704
7711
retroarch_init_task_queue ();
7705
7712
7706
7713
{
7707
- const char * fullpath = path_get ( RARCH_PATH_CONTENT ) ;
7714
+ const char * fullpath = p_rarch -> path_content ;
7708
7715
7709
7716
if (!string_is_empty (fullpath ))
7710
7717
{
@@ -7883,7 +7890,7 @@ bool retroarch_main_init(int argc, char *argv[])
7883
7890
command_event (CMD_EVENT_REWIND_INIT , NULL );
7884
7891
#endif
7885
7892
command_event (CMD_EVENT_CONTROLLER_INIT , NULL );
7886
- if (!string_is_empty (recording_st -> path ))
7893
+ if (!string_is_empty (rec_st -> path ))
7887
7894
command_event (CMD_EVENT_RECORD_INIT , NULL );
7888
7895
7889
7896
command_event (CMD_EVENT_SET_PER_GAME_RESOLUTION , NULL );
@@ -7981,7 +7988,7 @@ bool retroarch_ctl(enum rarch_ctl_state state, void *data)
7981
7988
{
7982
7989
/* Get loaded core file name */
7983
7990
const char * loaded_core_file = path_basename_nocompression (
7984
- path_get ( RARCH_PATH_CORE ) );
7991
+ p_rarch -> path_libretro );
7985
7992
/* Check whether specified core and currently
7986
7993
* loaded core are the same */
7987
7994
if (!string_is_empty (loaded_core_file ))
0 commit comments