summaryrefslogtreecommitdiff
path: root/plugins/CmdLine/MimCmd/src
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/CmdLine/MimCmd/src')
-rw-r--r--plugins/CmdLine/MimCmd/src/MimCmd.cpp115
-rw-r--r--plugins/CmdLine/MimCmd/src/commands.cpp229
-rw-r--r--plugins/CmdLine/MimCmd/src/commands.h42
-rw-r--r--plugins/CmdLine/MimCmd/src/common.h39
-rw-r--r--plugins/CmdLine/MimCmd/src/resource.h14
-rw-r--r--plugins/CmdLine/MimCmd/src/stdafx.cpp18
-rw-r--r--plugins/CmdLine/MimCmd/src/version.h14
7 files changed, 0 insertions, 471 deletions
diff --git a/plugins/CmdLine/MimCmd/src/MimCmd.cpp b/plugins/CmdLine/MimCmd/src/MimCmd.cpp
deleted file mode 100644
index 688205e6f8..0000000000
--- a/plugins/CmdLine/MimCmd/src/MimCmd.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
-CmdLine plugin for Miranda IM
-
-Copyright © 2007 Cristian Libotean
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-#include "common.h"
-
-int hLangpack = 0;
-
-int lpprintf(const char *format, ...)
-{
- va_list va;
- va_start(va, format);
- const int MAX_SIZE = 16192;
- char buffer[MAX_SIZE] = {0};
- int len = mir_vsnprintf(buffer, MAX_SIZE - 1, format, va);
- buffer[MAX_SIZE - 1] = 0;
- va_end(va);
- CharToOemBuff(buffer, buffer, len);
- printf("%s", buffer);
-
- return len;
-}
-
-char *GetProgramName(char *programName, int size)
-{
- char name[512];
- GetModuleFileName(GetModuleHandle(NULL), name, sizeof(name));
- char *p = strrchr(name, '\\');
- if (p)
- {
- STRNCPY(programName, p + 1, size);
- }
- else{
- STRNCPY(programName, name, size);
- }
-
- return programName;
-}
-
-void PrintUsage()
-{
- char name[128];
- GetProgramName(name, sizeof(name));
-
- lpprintf(Translate("%s usage:\n"), name);
- lpprintf(Translate("%s <command> [<param> [<param> [...]]].\n"), name);
- lpprintf(Translate("This will tell Miranda to run the specified command. The commands can have zero, one or more parameters. Use '%s help' to get a list of possible commands.\n"), name);
- lpprintf(Translate("No command can have more than %d parameters.\n"), MAX_ARGUMENTS - 1);
-}
-
-void ShowVersion()
-{
- char name[128];
- char message[1024];
- GetProgramName(name, sizeof(name));
- mir_snprintf(message, sizeof(message), Translate("%s version %s"), name, __VERSION_STRING_DOTS);
-
- lpprintf("%s\n", message);
-}
-
-int main(int argc, char *argv[])
-{
- int error = 0;
- if ((argc == 2) && (mir_strcmp(argv[1], "-v") == 0))
- {
- ShowVersion();
-
- return 0;
- }
-
- if ((InitClient()) || (ConnectToMiranda()) || (GetKnownCommands()) || (LoadLangPackModule()))
- {
- lpprintf("Could not create connection with Miranda or could not retrieve list of known commands.\n");
- error = MIMRES_NOMIRANDA;
- }
- else{
- if ((argc <= 1) || (argc > MAX_ARGUMENTS))
- {
- PrintUsage();
- }
- else{
- PReply reply = ParseCommand(argv, argc);
- if (reply)
- {
- error = reply->code;
- lpprintf("%s\n", reply->message);
- }
- else{
- lpprintf(Translate("Unknown command '%s'.\n"), argv[1]);
- }
-
- DestroyKnownCommands();
- DisconnectFromMiranda();
- DestroyClient();
- }
- }
-
- return error;
-}
diff --git a/plugins/CmdLine/MimCmd/src/commands.cpp b/plugins/CmdLine/MimCmd/src/commands.cpp
deleted file mode 100644
index bdccae6709..0000000000
--- a/plugins/CmdLine/MimCmd/src/commands.cpp
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
-CmdLine plugin for Miranda IM
-
-Copyright © 2007 Cristian Libotean
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-#include "common.h"
-
-inline char *STRNCPY(char *output, const char *input, size_t size)
-{
- char *res = strncpy(output, input, size);
- output[size - 1] = 0;
-
- return res;
-}
-
-LISTCOMMANDS ListCommands = NULL;
-
-PCommand knownCommands = NULL;
-int cKnownCommands = 0;
-
-HMODULE hCmdLineDLL = NULL;
-
-char *GetMirandaFolder(char *mimFolder, int size)
-{
- STRNCPY(mimFolder, sdCmdLine->mimFolder, size);
- mimFolder[size - 1] = 0;
-
- return mimFolder;
-}
-
-
-int ConnectToMiranda()
-{
- char pluginPath[1024];
- GetMirandaFolder(pluginPath, sizeof(pluginPath));
- mir_strcat(pluginPath, "\\plugins\\cmdline.dll");
-
- ListCommands = NULL;
-
- hCmdLineDLL = LoadLibrary(pluginPath);
-
- int failure = 1;
- if (hCmdLineDLL)
- {
- ListCommands = (LISTCOMMANDS) GetProcAddress(hCmdLineDLL, "ListCommands");
- }
-
- if (ListCommands)
- {
- failure = 0;
- }
-
- return failure;
-}
-
-int DisconnectFromMiranda()
-{
- return FreeLibrary(hCmdLineDLL);
-}
-
-int GetKnownCommands()
-{
- ListCommands(&knownCommands, &cKnownCommands);
-
- return (knownCommands == NULL);
-}
-
-int DestroyKnownCommands()
-{
-
-
- return 0;
-}
-
-PCommand GetCommand(char *command)
-{
- int i;
- char lower[512];
- STRNCPY(lower, command, sizeof(lower));
- _strlwr(lower);
-
- for (i = 0; i < cKnownCommands; i++)
- {
- if (mir_strcmp(knownCommands[i].command, lower) == 0)
- {
- return &knownCommands[i];
- }
- }
-
- //allow more parameters to trigger the help command - /h -h /? --help
- if ((mir_strcmp(lower, "/h") == 0) || (mir_strcmp(lower, "-h") == 0) || (mir_strcmp(lower, "/?") == 0) || (mir_strcmp(lower, "--help") == 0))
- {
- for (i = 0; i < cKnownCommands; i++)
- {
- if (knownCommands[i].ID == MIMCMD_HELP)
- {
- return &knownCommands[i];
- }
- }
- }
-
- return NULL;
-}
-
-void HandleHelpCommand(PCommand helpCommand, char *argv[], int argc, PReply reply)
-{
- CMStringA szReply;
-
- if (argc >= 3) {
- PCommand command = GetCommand(argv[2]);
-
- if (command) {
- reply->code = MIMRES_SUCCESS;
- szReply.Append(Translate(command->help));
- }
- else {
- reply->code = MIMRES_NOTFOUND;
- szReply.AppendFormat(Translate("No help for '%s'."), argv[2]);
- }
- }
- else {
- reply->code = MIMRES_SUCCESS;
- szReply.Append(Translate("Available commands: "));
-
- for (int i = 0; i < cKnownCommands - 1; i++) {
- szReply.Append(knownCommands[i].command);
- szReply.Append(", ");
- }
- szReply.Append(knownCommands[cKnownCommands-1].command);
- szReply.AppendChar('.');
- }
- strncpy_s(reply->message, szReply, _TRUNCATE);
-}
-
-PReply ParseCommand(char *argv[], int argc)
-{
- PCommand command = GetCommand(argv[1]);
- if (!command)
- return NULL;
-
- PReply reply = &sdCmdLine->reply;
- if (command->ID == MIMCMD_HELP)
- HandleHelpCommand(command, argv, argc, reply);
- else
- ProcessConsoleCommand(command, argv, argc, reply);
-
- return reply;
-}
-
-void FillSharedDataStruct(PCommand command, char *arguments[], int count)
-{
- for (int i = 0; i < count; i++)
- {
- STRNCPY(sdCmdLine->arguments[i], arguments[i], ARGUMENT_SIZE);
- }
-
- sdCmdLine->cArguments = count;
- sdCmdLine->command = *command;
- *sdCmdLine->reply.message = 0;
- sdCmdLine->reply.code =-1;
-}
-
-void ProcessConsoleCommand(PCommand command, char *arguments[], int count, PReply reply)
-{
- const HANDLE events[] = {heServerDone, heServerClose, heServerBufferFull};
- const int cEvents = sizeof(events) / sizeof(events[0]);
-
- if (WaitForSingleObject(hmClient, INFINITE) == WAIT_OBJECT_0)
- {//got the mutex, we're the only one who can talk to miranda now
- FillSharedDataStruct(command, arguments, count);
- SetEvent(heServerExec); //tell Miranda to process the request
-
- int done = FALSE;
- while (!done)
- {
- switch (WaitForMultipleObjects(cEvents, events, FALSE, INFINITE)) //wait until server either finished processing or miranda was closed
- {
- case WAIT_OBJECT_0: //done event
- {
- done = TRUE;
-
- break; //nothing to do
- }
-
- case WAIT_OBJECT_0 + 1: //close event
- default:
- {
- mir_strcpy(sdCmdLine->reply.message, Translate("Miranda has been closed or an error has occurred while waiting for the result, could not process request."));
- done = TRUE;
-
- break;
- }
-
- case WAIT_OBJECT_0 + 2: //buffer full event
- {
- lpprintf("%s", reply->message);
-
- break;
- }
- }
- }
-
- reply->code = sdCmdLine->reply.code;
- STRNCPY(reply->message, sdCmdLine->reply.message, REPLY_SIZE);
-
- ReleaseMutex(hmClient); //let other possible clients talk to the server
- }
- else{
- int err = GetLastError();
- reply->code = -1;
- *reply->message = 0;
- }
-
-} \ No newline at end of file
diff --git a/plugins/CmdLine/MimCmd/src/commands.h b/plugins/CmdLine/MimCmd/src/commands.h
deleted file mode 100644
index 4c60b49565..0000000000
--- a/plugins/CmdLine/MimCmd/src/commands.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-CmdLine plugin for Miranda IM
-
-Copyright © 2007 Cristian Libotean
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-#ifndef M_MIMCMD_COMMANDS_H
-#define M_MIMCMD_COMMANDS_H
-
-extern PCommand knownCommands;
-extern int cKnownCommands;
-
-typedef void (* LISTCOMMANDS)(PCommand *commands, int *count);
-
-extern LISTCOMMANDS ListCommands;
-
-char *GetMirandaFolder();
-
-int ConnectToMiranda();
-int DisconnectFromMiranda();
-int GetKnownCommands();
-int DestroyKnownCommands();
-
-PCommand GetCommand(char *command);
-PReply ParseCommand(char *argv[], int argc);
-void ProcessConsoleCommand(PCommand command, char *arguments[], int count, PReply reply);
-
-#endif \ No newline at end of file
diff --git a/plugins/CmdLine/MimCmd/src/common.h b/plugins/CmdLine/MimCmd/src/common.h
deleted file mode 100644
index 675276cf09..0000000000
--- a/plugins/CmdLine/MimCmd/src/common.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
-CmdLine plugin for Miranda IM
-
-Copyright © 2007 Cristian Libotean
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-#define _CRT_SECURE_NO_WARNINGS
-
-#include <stdio.h>
-#include <windows.h>
-
-#define NO_MIMCMD_COMMANDS
-
-#include <newpluginapi.h>
-#include <m_langpack.h>
-#include <m_system.h>
-#include <m_system_cpp.h>
-#include <m_string.h>
-
-#include "..\..\src\mimcmd_ipc.h"
-#include "version.h"
-#include "..\..\src\utils.h"
-#include "commands.h"
-
-int lpprintf(const char *format, ...);
diff --git a/plugins/CmdLine/MimCmd/src/resource.h b/plugins/CmdLine/MimCmd/src/resource.h
deleted file mode 100644
index c3bc570152..0000000000
--- a/plugins/CmdLine/MimCmd/src/resource.h
+++ /dev/null
@@ -1,14 +0,0 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by version.rc
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 101
-#define _APS_NEXT_COMMAND_VALUE 40001
-#define _APS_NEXT_CONTROL_VALUE 1001
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
diff --git a/plugins/CmdLine/MimCmd/src/stdafx.cpp b/plugins/CmdLine/MimCmd/src/stdafx.cpp
deleted file mode 100644
index c5fe5abaad..0000000000
--- a/plugins/CmdLine/MimCmd/src/stdafx.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
-Copyright (C) 2012-15 Miranda NG project (http://miranda-ng.org)
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation version 2
-of the License.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "common.h" \ No newline at end of file
diff --git a/plugins/CmdLine/MimCmd/src/version.h b/plugins/CmdLine/MimCmd/src/version.h
deleted file mode 100644
index 9dc4c88e49..0000000000
--- a/plugins/CmdLine/MimCmd/src/version.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#define __MAJOR_VERSION 0
-#define __MINOR_VERSION 0
-#define __RELEASE_NUM 4
-#define __BUILD_NUM 1
-
-#include <stdver.h>
-
-#define __PLUGIN_NAME "MimCmd"
-#define __FILENAME "MimCmd.exe"
-#define __DESCRIPTION "This will tell Miranda to run the specified command."
-#define __AUTHOR "Cristian Libotean"
-#define __AUTHOREMAIL "eblis102@yahoo.com"
-#define __AUTHORWEB "http://miranda-ng.org/p/CmdLine/"
-#define __COPYRIGHT "© 2007-2011 Cristian Libotean"