summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authorai4rei <ai4rei@54d463be-8e91-2dee-dedb-b68131a5f0ec>2010-12-29 05:14:16 +0000
committerai4rei <ai4rei@54d463be-8e91-2dee-dedb-b68131a5f0ec>2010-12-29 05:14:16 +0000
commit71201030aedb473d67f15c4ab72ba21c60cca30b (patch)
tree8bcb37646c504cd3ece8864a2804f013f8a9df7d /src/plugins
parentb5633db9744bff512eef665054a2622780a7ab6c (diff)
downloadhercules-71201030aedb473d67f15c4ab72ba21c60cca30b.tar.gz
hercules-71201030aedb473d67f15c4ab72ba21c60cca30b.tar.bz2
hercules-71201030aedb473d67f15c4ab72ba21c60cca30b.tar.xz
hercules-71201030aedb473d67f15c4ab72ba21c60cca30b.zip
* Fixed 'console' plugin not working on Windows, due to NULL passed to CreateThread instead of required pointer to thread id variable.
- Fixed 'console' plugin causing delete_timer error when it fails to load, due to uninitialized variable. * Renamed plugin.def to sample.def and added 'sample' plugin exports into it, as it's purpose is nothing than a sample right now. - Also added .def files for 'gui' and 'pid' plugins as MSVC does not export everything automatically and missing event export cause the plugins silently failing. - Added VS6, VS8 and VS9 projects for compiling plug-ins, which can be used on Windows. * The plug-in system will now report, if it cannot import an event function. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14638 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/console.c5
-rw-r--r--src/plugins/gui.def (renamed from src/plugins/plugin.def)2
-rw-r--r--src/plugins/pid.def7
-rw-r--r--src/plugins/sample.def11
4 files changed, 23 insertions, 2 deletions
diff --git a/src/plugins/console.c b/src/plugins/console.c
index 5056eafdc..7ea69c637 100644
--- a/src/plugins/console.c
+++ b/src/plugins/console.c
@@ -32,7 +32,8 @@
#define WORKER_FUNC_END(name) } ExitThread(0); return 0; }
#define WORKER_EXECUTE(name,errvar) \
do{ \
- buf.worker = CreateThread(NULL, 0, worker_ ## name, NULL, CREATE_SUSPENDED, NULL); \
+ DWORD dwThreadId; \
+ buf.worker = CreateThread(NULL, 0, worker_ ## name, NULL, CREATE_SUSPENDED, &dwThreadId); \
if( errvar ) \
*errvar = ( buf.worker == NULL ); \
}while(0)
@@ -135,7 +136,7 @@ unsigned int (*gettick)(void);
int (*parse_console)(char* buf);
// Locals
-int tid; // timer id
+int tid = -1; // timer id
BUFFER buf; // input buffer
WORKER_FUNC_DECLARE(getinput); // worker for the input buffer
diff --git a/src/plugins/plugin.def b/src/plugins/gui.def
index 6117bedc6..0a5d6a714 100644
--- a/src/plugins/plugin.def
+++ b/src/plugins/gui.def
@@ -2,3 +2,5 @@ EXPORTS
plugin_info DATA
plugin_event_table DATA
plugin_call_table DATA
+
+ gui_init
diff --git a/src/plugins/pid.def b/src/plugins/pid.def
new file mode 100644
index 000000000..a70cf8127
--- /dev/null
+++ b/src/plugins/pid.def
@@ -0,0 +1,7 @@
+EXPORTS
+ plugin_info DATA
+ plugin_event_table DATA
+ plugin_call_table DATA
+
+ pid_create
+ pid_delete
diff --git a/src/plugins/sample.def b/src/plugins/sample.def
new file mode 100644
index 000000000..f5c4af652
--- /dev/null
+++ b/src/plugins/sample.def
@@ -0,0 +1,11 @@
+EXPORTS
+ ; common exports
+ plugin_info DATA
+ plugin_event_table DATA
+ plugin_call_table DATA
+
+ ; plugin-specific exports
+ test_me
+ do_init
+ do_final
+ some_function