Mercurial > repos > blastem
changeset 1294:a719e2c98b54
Allow variables in screenshot_path like initial_path
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 21 Mar 2017 19:56:50 -0700 |
parents | 72ea3885e7b5 |
children | 96ad1b9bbb3a |
files | default.cfg io.c |
diffstat | 2 files changed, 8 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/default.cfg Tue Mar 21 19:48:08 2017 -0700 +++ b/default.cfg Tue Mar 21 19:56:50 2017 -0700 @@ -200,7 +200,8 @@ #starting path for ROM browsing, accepts special variables $HOME, $EXEDIR #and variables defined in the OS environment initial_path $HOME - #screenshot_path defaults to the user's home/profile directory if not specified + #path for storing internal screenshots, accepts the same variables as initial_path + screenshot_path $HOME #see strftime for the format specifiers valid in screenshot_template screenshot_template blastem_%c.ppm }
--- a/io.c Tue Mar 21 19:48:08 2017 -0700 +++ b/io.c Tue Mar 21 19:56:50 2017 -0700 @@ -496,8 +496,12 @@ case UI_SCREENSHOT: { char *screenshot_base = tern_find_path(config, "ui\0screenshot_path\0").ptrval; if (!screenshot_base) { - screenshot_base = get_home_dir(); + screenshot_base = "$HOME"; } + tern_node *vars = tern_insert_ptr(NULL, "HOME", get_home_dir()); + vars = tern_insert_ptr(vars, "EXEDIR", get_exe_dir()); + screenshot_base = replace_vars(screenshot_base, vars, 1); + tern_free(vars); time_t now = time(NULL); struct tm local_store; char fname_part[256]; @@ -508,6 +512,7 @@ strftime(fname_part, sizeof(fname_part), template, localtime_r(&now, &local_store)); char const *parts[] = {screenshot_base, PATH_SEP, fname_part}; char *path = alloc_concat_m(3, parts); + free(screenshot_base); render_save_screenshot(path); break; }