summaryrefslogtreecommitdiff
path: root/plugins/CmdLine/MimCmd/src/MimCmd.cpp
diff options
context:
space:
mode:
authorVadim Dashevskiy <watcherhd@gmail.com>2012-07-16 16:31:53 +0000
committerVadim Dashevskiy <watcherhd@gmail.com>2012-07-16 16:31:53 +0000
commit5b0a53a6d3f1b8d70b34631d96d3815d0a334dd3 (patch)
tree9b38676d8ae565bac52063f5398dde110082a26f /plugins/CmdLine/MimCmd/src/MimCmd.cpp
parent1cf47d1eaff4d7d7242d0ab87dd540ae5b400833 (diff)
Clist_mw, Clist_nicer, CmdLine, Console: folder structure change
git-svn-id: http://svn.miranda-ng.org/main/trunk@988 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/CmdLine/MimCmd/src/MimCmd.cpp')
-rw-r--r--plugins/CmdLine/MimCmd/src/MimCmd.cpp117
1 files changed, 117 insertions, 0 deletions
diff --git a/plugins/CmdLine/MimCmd/src/MimCmd.cpp b/plugins/CmdLine/MimCmd/src/MimCmd.cpp
new file mode 100644
index 0000000000..07daf85a0c
--- /dev/null
+++ b/plugins/CmdLine/MimCmd/src/MimCmd.cpp
@@ -0,0 +1,117 @@
+/*
+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"
+#include "..\..\src\utils.h"
+#include "..\..\src\version.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 = _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);
+
+ lpprintf("%s\n", message);
+}
+
+int main(int argc, char *argv[])
+{
+ int error = 0;
+ if ((argc == 2) && (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;
+}