From 004862850d628e2599c15d66f6b51498e4d7a29e Mon Sep 17 00:00:00 2001 From: rakshasa Date: Fri, 4 May 2012 22:56:58 +0900 Subject: [PATCH] Allow command function lists for dynamically created functions. --- src/command_dynamic.cc | 2 +- src/main.cc | 4 ++-- src/rpc/object_storage.cc | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/command_dynamic.cc b/src/command_dynamic.cc index 1f605b78..852651b1 100644 --- a/src/command_dynamic.cc +++ b/src/command_dynamic.cc @@ -401,7 +401,7 @@ system_method_set_key(const torrent::Object::list_type& args) { return torrent::Object(); } - if (itrArgs->is_dict_key()) + if (itrArgs->is_dict_key() || itrArgs->is_list()) control->object_storage()->set_str_multi_key_obj(key.c_str(), cmd_key, *itrArgs); else control->object_storage()->set_str_multi_key(key, cmd_key, system_method_generate_command(itrArgs, args.end())); diff --git a/src/main.cc b/src/main.cc index a4b288f4..4f2a9184 100644 --- a/src/main.cc +++ b/src/main.cc @@ -266,8 +266,8 @@ main(int argc, char** argv) { "method.set_key = event.download.inserted, 1_connect_logs, ((d.initialize_logs))\n" "method.set_key = event.download.inserted, 1_send_scrape, ((d.tracker.send_scrape,30))\n" - "method.set_key = event.download.inserted_new, 1_prepare, \"branch=d.state=,view.set_visible=started,view.set_visible=stopped ;d.save_full_session=\"\n" - "method.set_key = event.download.inserted_session, 1_prepare, \"branch=d.state=,view.set_visible=started,view.set_visible=stopped\"\n" + "method.set_key = event.download.inserted_new, 1_prepare, {(branch,((d.state)),((view.set_visible,started)),((view.set_visible,stopped)) ),(d.save_full_session)}\n" + "method.set_key = event.download.inserted_session, 1_prepare, {(branch,((d.state)),((view.set_visible,started)),((view.set_visible,stopped)) )}\n" "method.set_key = event.download.inserted, 1_prioritize_toc, \"branch=file.prioritize_toc=,{\\\"f.multicall=(file.prioritize_toc.first),f.prioritize_first.enable=\\\",\\\"f.multicall=(file.prioritize_toc.last),f.prioritize_last.enable=\\\",d.update_priorities=}\"\n" diff --git a/src/rpc/object_storage.cc b/src/rpc/object_storage.cc index eebc149a..1da057a3 100644 --- a/src/rpc/object_storage.cc +++ b/src/rpc/object_storage.cc @@ -218,7 +218,7 @@ object_storage::erase_multi_key(const torrent::raw_string& key, const std::strin void object_storage::set_multi_key_obj(const torrent::raw_string& key, const std::string& cmd_key, const torrent::Object& object) { - if (!object.is_string() && !object.is_dict_key()) + if (!object.is_string() && !object.is_dict_key() && !object.is_list()) throw torrent::input_error("Object is wrong type."); local_iterator itr = find_local_mutable(key, flag_multi_type);