}
}
+float curl_uri_get_pos;
+float curl_uri_get_exec[URI_GET_CURL_END - URI_GET_CURL + 1];
+string curl_uri_get_cvar[URI_GET_CURL_END - URI_GET_CURL + 1];
+void Curl_URI_Get_Callback(float id, float status, string data)
+{
+ float i;
+ float do_exec;
+ string do_cvar;
+ i = id - URI_GET_CURL;
+ do_exec = curl_uri_get_exec[i];
+ do_cvar = curl_uri_get_cvar[i];
+ if(status != 0)
+ {
+ print(sprintf(_("error: status is %d\n"), status));
+ if(do_cvar)
+ strunzone(do_cvar);
+ return;
+ }
+ if(do_exec)
+ localcmd(data);
+ if(do_cvar)
+ {
+ cvar_set(do_cvar, data);
+ strunzone(do_cvar);
+ }
+ if(!do_exec && !do_cvar)
+ print(data);
+}
+
void GameCommand(string theCommand)
{
float argc;
if(argv(0) == "help" || argc == 0)
{
- print("Usage: menu_cmd theCommand..., where possible theCommands are:\n");
- print(" sync - reloads all cvars on the current menu page\n");
- print(" directmenu ITEM - select a menu item as main item\n");
+ print(_("Usage: menu_cmd command..., where possible commands are:\n"));
+ print(_(" sync - reloads all cvars on the current menu page\n"));
+ print(_(" directmenu ITEM - select a menu item as main item\n"));
GameCommand_Generic("help");
return;
}
if(argv(0) == "sync")
{
- loadAllCvars(main);
+ m_sync();
return;
}
return;
}
+ if(argv(0) == "languageselect")
+ {
+ m_goto_language_selector();
+ return;
+ }
+
if(argv(0) == "videosettings")
{
m_goto_video_settings();
return;
}
- if(argv(0) == "setresolution")
+ if(argv(0) == "curl")
{
- updateConwidths();
- return;
- }
-
- if(argv(0) == "setcompression")
- {
- updateCompression();
- return;
- }
-
-#if 0
- if(argv(0) == "tokentest")
- {
- string s;
- float i, n;
-
- print("SANE tokenizer:\n");
- s = cvar_string("tokentest");
- n = tokenize_console_force_builtin(s);
- for(i = -n; i < n; ++i)
+ float do_exec;
+ string do_cvar;
+ float key;
+ float i, j;
+ string url;
+ float buf;
+ float r;
+
+ do_exec = FALSE;
+ do_cvar = string_null;
+ key = -1;
+
+ for(i = 1; i+1 < argc; ++i)
{
- print("token ", ftos(i), ": '", argv(i), "' = ");
- print(ftos(argv_start_index(i)), " to ", ftos(argv_end_index(i)), "\n");
+ if(argv(i) == "--cvar" && i+2 < argc)
+ {
+ ++i;
+ do_cvar = strzone(argv(i));
+ continue;
+ }
+ if(argv(i) == "--exec")
+ {
+ do_exec = TRUE;
+ continue;
+ }
+ if(argv(i) == "--key" && i+2 < argc)
+ {
+ ++i;
+ key = stof(argv(i));
+ continue;
+ }
+ break;
}
- print(".\n");
- print("INSANE tokenizer:\n");
- s = cvar_string("tokentest");
- n = tokenize(s);
- for(i = -n; i < n; ++i)
+ // now, argv(i) is the URL
+ // following args may be POST parameters
+ url = argv(i);
+ ++i;
+ buf = buf_create();
+ j = 0;
+ for(; i+1 < argc; i += 2)
+ bufstr_set(buf, ++j, sprintf("%s=%s", uri_escape(argv(i)), uri_escape(argv(i+1))));
+ if(i < argc)
+ bufstr_set(buf, ++j, sprintf("submit=%s", uri_escape(argv(i))));
+
+ if(j == 0) // no args: GET
+ r = crypto_uri_postbuf(url, URI_GET_CURL + curl_uri_get_pos, string_null, string_null, -1, key);
+ else // with args: POST
+ r = crypto_uri_postbuf(url, URI_GET_CURL + curl_uri_get_pos, "application/x-www-form-urlencoded", "&", buf, key);
+
+ if(r)
{
- print("token ", ftos(i), ": '", argv(i), "' = ");
- print(ftos(argv_start_index(i)), " to ", ftos(argv_end_index(i)), "\n");
+ curl_uri_get_exec[curl_uri_get_pos] = do_exec;
+ curl_uri_get_cvar[curl_uri_get_pos] = do_cvar;
+ curl_uri_get_pos = mod(curl_uri_get_pos + 1, URI_GET_CURL_END - URI_GET_CURL + 1);
}
- print(".\n");
+ else
+ print(_("error creating curl handle\n"));
+
+ buf_del(buf);
- print("EMULATED tokenizer:\n");
- s = cvar_string("tokentest");
- n = tokenize_console_force_emulation(s);
- for(i = -n; i < n; ++i)
- {
- print("token ", ftos(i), ": '", argv(i), "' = ");
- print(ftos(argv_start_index(i)), " to ", ftos(argv_end_index(i)), "\n");
- }
- print(".\n");
return;
}
-#endif
- print("Invalid theCommand. For a list of supported theCommands, try menu_cmd help.\n");
+ print(_("Invalid command. For a list of supported commands, try menu_cmd help.\n"));
}