From 5709b0dfa9523055ec423e48d411f098ba6882eb Mon Sep 17 00:00:00 2001 From: aunsane Date: Fri, 29 Sep 2017 00:23:53 +0300 Subject: CmdLine: MirLua support version bump --- plugins/CmdLine/src/mimcmd_data.cpp | 31 ++++++++++++++------------- plugins/CmdLine/src/mimcmd_data.h | 2 ++ plugins/CmdLine/src/mimcmd_handlers.cpp | 38 +++++++++++++++++++++++++++++++++ plugins/CmdLine/src/stdafx.h | 2 ++ plugins/CmdLine/src/version.h | 16 +++++++------- 5 files changed, 66 insertions(+), 23 deletions(-) (limited to 'plugins') diff --git a/plugins/CmdLine/src/mimcmd_data.cpp b/plugins/CmdLine/src/mimcmd_data.cpp index 61c6af89d7..8338c0e48a 100644 --- a/plugins/CmdLine/src/mimcmd_data.cpp +++ b/plugins/CmdLine/src/mimcmd_data.cpp @@ -24,23 +24,24 @@ TCommand mimCommands[] = { { MIMCMD_STATUS, "status", MIMCMD_HELP_STATUS }, { MIMCMD_AWAYMSG, "awaymsg", MIMCMD_HELP_AWAYMSG }, - { MIMCMD_XSTATUS, "xstatus", MIMCMD_HELP_XSTATUS }, - { MIMCMD_POPUPS, "popups", MIMCMD_HELP_POPUPS }, - { MIMCMD_SOUNDS, "sounds", MIMCMD_HELP_SOUNDS }, - { MIMCMD_CLIST, "clist", MIMCMD_HELP_CLIST }, - { MIMCMD_QUIT, "quit", MIMCMD_HELP_QUIT }, - { MIMCMD_HELP, "help", MIMCMD_HELP_HELP }, - { MIMCMD_EXCHANGE, "exchange", MIMCMD_HELP_EXCHANGE }, - { MIMCMD_YAMN, "yamn", MIMCMD_HELP_YAMN }, - { MIMCMD_CALLSERVICE, "callservice", MIMCMD_HELP_CALLSERVICE }, - { MIMCMD_MESSAGE, "message", MIMCMD_HELP_MESSAGE }, - { MIMCMD_DATABASE, "db", MIMCMD_HELP_DATABASE }, - { MIMCMD_PROXY, "proxy", MIMCMD_HELP_PROXY }, - { MIMCMD_CONTACTS, "contacts", MIMCMD_HELP_CONTACTS }, - { MIMCMD_HISTORY, "history", MIMCMD_HELP_HISTORY }, - { MIMCMD_VERSION, "version", MIMCMD_HELP_VERSION }, + { MIMCMD_XSTATUS, "xstatus", MIMCMD_HELP_XSTATUS }, + { MIMCMD_POPUPS, "popups", MIMCMD_HELP_POPUPS }, + { MIMCMD_SOUNDS, "sounds", MIMCMD_HELP_SOUNDS }, + { MIMCMD_CLIST, "clist", MIMCMD_HELP_CLIST }, + { MIMCMD_QUIT, "quit", MIMCMD_HELP_QUIT }, + { MIMCMD_HELP, "help", MIMCMD_HELP_HELP }, + { MIMCMD_EXCHANGE, "exchange", MIMCMD_HELP_EXCHANGE }, + { MIMCMD_YAMN, "yamn", MIMCMD_HELP_YAMN }, + { MIMCMD_CALLSERVICE, "callservice", MIMCMD_HELP_CALLSERVICE }, + { MIMCMD_MESSAGE, "message", MIMCMD_HELP_MESSAGE }, + { MIMCMD_DATABASE, "db", MIMCMD_HELP_DATABASE }, + { MIMCMD_PROXY, "proxy", MIMCMD_HELP_PROXY }, + { MIMCMD_CONTACTS, "contacts", MIMCMD_HELP_CONTACTS }, + { MIMCMD_HISTORY, "history", MIMCMD_HELP_HISTORY }, + { MIMCMD_VERSION, "version", MIMCMD_HELP_VERSION }, { MIMCMD_SETNICKNAME, "setnickname", MIMCMD_HELP_SETNICKNAME }, { MIMCMD_IGNORE, "ignore", MIMCMD_HELP_IGNORE }, + { MIMCMD_LUA, "lua", MIMCMD_HELP_LUA }, }; int cMimCommands = sizeof(mimCommands) / sizeof(mimCommands[0]); \ No newline at end of file diff --git a/plugins/CmdLine/src/mimcmd_data.h b/plugins/CmdLine/src/mimcmd_data.h index 0cea4b2ac1..3718bb3ac6 100644 --- a/plugins/CmdLine/src/mimcmd_data.h +++ b/plugins/CmdLine/src/mimcmd_data.h @@ -87,6 +87,7 @@ typedef TSharedData *PSharedData; #define MIMCMD_VERSION 17 #define MIMCMD_SETNICKNAME 18 #define MIMCMD_IGNORE 19 +#define MIMCMD_LUA 20 #define MIMCMD_HELP_STATUS LPGEN("Changes account status either globally or per account.\nUsage: status [].\nPossible values for are: offline, online, away, dnd, na, occupied, freechat, invisible, onthephone, outtolunch.\n is an optional parameter specifying the account to set the status for. If it's not specified then the command will issue a global status change.") #define MIMCMD_HELP_AWAYMSG LPGEN("Changes away message either globally or per account.\nUsage: awaymsg [].\n is the new away message.\n is an optional parameter specifying the account to set the away message for. If not specified then the away message will be set globally.") @@ -107,6 +108,7 @@ typedef TSharedData *PSharedData; #define MIMCMD_HELP_VERSION LPGEN("Shows version information for Miranda and CmdLine plugin. If CrashDumper plugin is installed, it will use its report instead.\nUsage: version.\nThe command will print Miranda's and CmdLine's version numbers or, if CrashDumper plugin is installed, it will show Version Info report.") #define MIMCMD_HELP_SETNICKNAME LPGEN("Changes the user's nickname on the given protocol to the new name.\nUsage: setnickname new_nickname.") #define MIMCMD_HELP_IGNORE LPGEN("Ignores or removes ignore flags for specific contacts.\nUsage:\n ignore (block | unblock) [ [ [...]]].\nThe command will set or remove ignore flags for the specified contacts") +#define MIMCMD_HELP_LUA LPGEN("Execute lua script via MirLua plugin.\nUsage:\n call [] \n exec \"\"\n eval \"\"") #define MIMMEM_REPLY 1 //data is a PReply structure diff --git a/plugins/CmdLine/src/mimcmd_handlers.cpp b/plugins/CmdLine/src/mimcmd_handlers.cpp index 05c1bbed22..ca84413487 100644 --- a/plugins/CmdLine/src/mimcmd_handlers.cpp +++ b/plugins/CmdLine/src/mimcmd_handlers.cpp @@ -1610,6 +1610,40 @@ void HandleIgnoreCommand(PCommand command, TArgument *argv, int argc, PReply rep else HandleWrongParametersCount(command, reply); } +void HandleLuaCommand(PCommand command, TArgument *argv, int argc, PReply reply) +{ + if (argc <= 3) { + HandleWrongParametersCount(command, reply); + return; + } + + if (_stricmp(argv[2], "call") == 0) { + wchar_t *result = argc == 4 + ? lua_call(NULL, _A2T(argv[3])) + : lua_call(_A2T(argv[3]), _A2T(argv[4])); + mir_strcpy(reply->message, _T2A(result)); + mir_free(result); + reply->code = MIMRES_SUCCESS; + return; + } + + if (_stricmp(argv[2], "exec") == 0) { + ptrW result(lua_exec(_A2T(argv[3]))); + mir_strcpy(reply->message, _T2A(result)); + reply->code = MIMRES_SUCCESS; + return; + } + + if (_stricmp(argv[2], "eval") == 0) { + ptrW result(lua_eval(_A2T(argv[3]))); + mir_strcpy(reply->message, _T2A(result)); + reply->code = MIMRES_SUCCESS; + return; + } + + HandleUnknownParameter(command, argv[2], reply); +} + void HandleCommand(PCommand command, TArgument *argv, int argc, PReply reply) { switch (command->ID) { @@ -1681,6 +1715,10 @@ void HandleCommand(PCommand command, TArgument *argv, int argc, PReply reply) HandleIgnoreCommand(command, argv, argc, reply); return; + case MIMCMD_LUA: + HandleLuaCommand(command, argv, argc, reply); + return; + default: reply->code = MIMRES_NOTFOUND; mir_snprintf(reply->message, Translate("Command '%s' is not currently supported."), command->command); diff --git a/plugins/CmdLine/src/stdafx.h b/plugins/CmdLine/src/stdafx.h index 527f179566..0cdff59745 100644 --- a/plugins/CmdLine/src/stdafx.h +++ b/plugins/CmdLine/src/stdafx.h @@ -42,6 +42,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "m_crashdumper.h" #include "m_statusplugins.h" +#include "m_lua.h" + #include "version.h" #include "utils.h" #include "resource.h" diff --git a/plugins/CmdLine/src/version.h b/plugins/CmdLine/src/version.h index 11275081d5..2fcfc361cd 100644 --- a/plugins/CmdLine/src/version.h +++ b/plugins/CmdLine/src/version.h @@ -1,14 +1,14 @@ -#define __MAJOR_VERSION 0 -#define __MINOR_VERSION 0 -#define __RELEASE_NUM 4 -#define __BUILD_NUM 6 +#define __MAJOR_VERSION 0 +#define __MINOR_VERSION 0 +#define __RELEASE_NUM 4 +#define __BUILD_NUM 7 #include -#define __PLUGIN_NAME "Command line" -#define __FILENAME "CmdLine.dll" +#define __PLUGIN_NAME "Command line" +#define __FILENAME "CmdLine.dll" #define __DESCRIPTION "This plugin lets you control Miranda from the command line." -#define __AUTHOR "Cristian Libotean" -#define __AUTHOREMAIL "eblis102@yahoo.com" +#define __AUTHOR "Cristian Libotean" +#define __AUTHOREMAIL "eblis102@yahoo.com" #define __AUTHORWEB "https://miranda-ng.org/p/CmdLine/" #define __COPYRIGHT "© 2007-2011 Cristian Libotean" -- cgit v1.2.3