diff --git a/src/syncterm/bbslist.c b/src/syncterm/bbslist.c index 6212ecbadd7ac52450465a1ed0623dcdaa28e8cd..611a235e58992d8768df6abf5affdd9ce6d85136 100644 --- a/src/syncterm/bbslist.c +++ b/src/syncterm/bbslist.c @@ -2974,8 +2974,23 @@ edit_web_lists(void) // TODO: Help if (uifc.input(WIN_SAV | WIN_MID, 0, 0, "Web List URI", tmpv, sizeof(tmpv) - 1, K_EDIT) != -1 && tmpv[0]) { - namedStrListInsert(&settings.webgets, tmpn, tmpv, i & MSK_OFF); - changed = true; + char cache_path[MAX_PATH + 1]; + if (get_syncterm_filename(cache_path, sizeof(cache_path), SYNCTERM_PATH_SYSTEM_CACHE, false)) { + struct webget_request req; + if (!init_webget_req(&req, cache_path, tmpn, tmpv) || !iniReadHttp(&req)) { + char temp[1024]; + snprintf(temp, sizeof(temp), "Can't fetch URI: %s", req.msg); + uifc.msg(temp); + } + else { + namedStrListInsert(&settings.webgets, tmpn, tmpv, i & MSK_OFF); + changed = true; + } + } + else { + namedStrListInsert(&settings.webgets, tmpn, tmpv, i & MSK_OFF); + changed = true; + } } break; } diff --git a/src/syncterm/syncterm.c b/src/syncterm/syncterm.c index d12cf2304a9c35146eca4a5a0f6b6b41bd71cddd..9b0ccf1a63315f14584eb1ba318a7b348624134a 100644 --- a/src/syncterm/syncterm.c +++ b/src/syncterm/syncterm.c @@ -1446,6 +1446,16 @@ get_syncterm_filename(char *fn, int fnlen, int type, bool shared) sprintf(fn, "%.*s", fnlen - 1, list_override); return fn; } + + // Get recursive for the system cache... + if (type == SYNCTERM_PATH_SYSTEM_CACHE) { + if (!get_syncterm_filename(fn, fnlen, SYNCTERM_PATH_CACHE, false)) + return NULL; + backslash(fn); + strlcat(fn, "syncterm-system-cache", fnlen); + mkpath(fn); + return fn; + } memset(fn, 0, fnlen); #if defined(__APPLE__) && defined(__MACH__) return get_OSX_filename(fn, fnlen, type, shared); @@ -2168,11 +2178,7 @@ main(int argc, char **argv) init_uifc(true, true); char cache_path[MAX_PATH + 1]; - if (get_syncterm_filename(cache_path, sizeof(cache_path), SYNCTERM_PATH_CACHE, false)) { - backslash(cache_path); - strlcat(cache_path, "syncterm-system-cache", sizeof(cache_path)); - mkpath(cache_path); - + if (get_syncterm_filename(cache_path, sizeof(cache_path), SYNCTERM_PATH_SYSTEM_CACHE, false)) { size_t items; size_t started = 0; COUNT_LIST_ITEMS(settings.webgets, items); diff --git a/src/syncterm/syncterm.h b/src/syncterm/syncterm.h index d7ee87f0dc9123568485f5aa768bfe837044b37d..7038cee2ff2cde1556a619f9cfba0f648097b76f 100644 --- a/src/syncterm/syncterm.h +++ b/src/syncterm/syncterm.h @@ -14,15 +14,12 @@ #endif enum { - SYNCTERM_PATH_INI - , - SYNCTERM_PATH_LIST - , - SYNCTERM_DEFAULT_TRANSFER_PATH - , - SYNCTERM_PATH_CACHE - , - SYNCTERM_PATH_KEYS + SYNCTERM_PATH_INI, + SYNCTERM_PATH_LIST, + SYNCTERM_DEFAULT_TRANSFER_PATH, + SYNCTERM_PATH_CACHE, + SYNCTERM_PATH_KEYS, + SYNCTERM_PATH_SYSTEM_CACHE }; /* Default modem device */