[ekg2-commit] ekg2: scripts.h (HEAD) scripts.c (HEAD) [darkjames]
CVS commit
cvs w toxygen.net
Czw, 3 Maj 2007, 15:30:48 CEST
Module name: ekg2
Changes by: darkjames 2007-05-03 15:30:45
Modified files:
scripts.h scripts.c
Log message:
scripts, use stuff from queries.h
Index: scripts.h
===================================================================
RCS file: /home/cvs/ekg2/ekg/scripts.h,v
diff -d -u -r1.16 -r1.17
--- scripts.h 4 Sep 2006 18:35:39 -0000 1.16
+++ scripts.h 3 May 2007 13:30:45 -0000 1.17
@@ -21,17 +21,6 @@
SCRIPT_PLUGINTYPE,
} script_type_t;
-typedef enum {
- SCR_ARG_UNKNOWN,
-/* SCR_ARG_CHAR, */ /* use SCR_ARG_INT */
- SCR_ARG_CHARP,
- SCR_ARG_CHARPP,
- SCR_ARG_INT,
-
- SCR_ARG_WINDOW = 100,
- SCR_ARG_FSTRING,
-} script_arg_type_t;
-
typedef struct {
void *lang;
char *name;
@@ -194,7 +183,7 @@
script_command_t *script_command_bind(scriptlang_t *s, script_t *scr, char *command, void *handler);
script_timer_t *script_timer_bind(scriptlang_t *s, script_t *scr, int freq, void *handler);
-script_query_t *script_query_bind(scriptlang_t *s, script_t *scr, char *query_name, void *handler);
+script_query_t *script_query_bind(scriptlang_t *s, script_t *scr, char *qname, void *handler);
script_var_t *script_var_add(scriptlang_t *s, script_t *scr, char *name, char *value, void *handler);
script_watch_t *script_watch_add(scriptlang_t *s, script_t *scr, int fd, int type, void *handler, void *data);
script_plugin_t *script_plugin_init(scriptlang_t *s, script_t *scr, char *name, plugin_class_t pclass, void *handler);
Index: scripts.c
===================================================================
RCS file: /home/cvs/ekg2/ekg/scripts.c,v
diff -d -u -r1.37 -r1.38
--- scripts.c 17 Mar 2007 20:21:47 -0000 1.37
+++ scripts.c 3 May 2007 13:30:45 -0000 1.38
@@ -22,6 +22,8 @@
#include "stuff.h" /* timer */
#include "vars.h" /* vars */
+#include "queries.h"
+
/* TODO && BUGS
* - cleanup.
* - multiple handler for commands && var_changed.
@@ -618,83 +620,64 @@
SCRIPT_BIND_FOOTER(script_watches);
}
-script_query_t *script_query_bind(scriptlang_t *s, script_t *scr, char *query_name, void *handler)
+script_query_t *script_query_bind(scriptlang_t *s, script_t *scr, char *qname, void *handler)
{
SCRIPT_BIND_HEADER(script_query_t);
/* argc i argv_type uzupelnic... z czego ? xstrcmp() ? */
-#define CHECK(x) if (!xstrcmp(query_name, x))
-#define CHECK_(x) if (!xstrncmp(query_name, x, xstrlen(x)))
+#define CHECK(x) if (!xstrcmp(qname, x))
+#define CHECK_(x) if (!xstrncmp(qname, x, xstrlen(x)))
#define NEXT_ARG(y) temp->argv_type[temp->argc] = y; temp->argc++;
/* PROTOCOL */
- CHECK("protocol-disconnected") { NEXT_ARG(SCR_ARG_CHARP); } /* XXX */
- else CHECK("protocol-connected") { NEXT_ARG(SCR_ARG_CHARP); } /* XXX */
- else CHECK("protocol-status") { NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_CHARP); }
- else CHECK("protocol-message") { NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_CHARPP);
- NEXT_ARG(SCR_ARG_CHARP);
-/* NEXT_ARG(SCR_ARG_UNITPP); */
- NEXT_ARG(SCR_ARG_INT); /* time_t */
- NEXT_ARG(SCR_ARG_INT); }
- else CHECK("protocol-message-post") { NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_CHARPP);
- NEXT_ARG(SCR_ARG_CHARP);
-/* NEXT_ARG(SCR_ARG_UNITPP); */
- NEXT_ARG(SCR_ARG_INT); /* time_t */
- NEXT_ARG(SCR_ARG_INT); }
- else CHECK("protocol-message-received") { NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_CHARPP);
- NEXT_ARG(SCR_ARG_CHARP);
-/* NEXT_ARG(SCR_ARG_UNITPP); */
- NEXT_ARG(SCR_ARG_INT); /* time_t */
- NEXT_ARG(SCR_ARG_INT); }
- else CHECK("protocol-message-sent") { NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_CHARP); }
- else CHECK("protocol-validate-uid") { NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_INT); }
-/* USERLIST */
- else CHECK("userlist-added") { NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_INT); }
- else CHECK("userlist-changed") { NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_CHARP); }
- else CHECK("variable-changed") { NEXT_ARG(SCR_ARG_CHARP); }
-/* UI */
- else CHECK("ui-keypress") { NEXT_ARG(SCR_ARG_INT); }
- else CHECK("ui-is-initialized") { NEXT_ARG(SCR_ARG_INT); }
- else CHECK("ui-window-new") { NEXT_ARG(SCR_ARG_WINDOW); }
- else CHECK("ui-window-switch") { NEXT_ARG(SCR_ARG_WINDOW); }
- else CHECK("ui-window-print") { NEXT_ARG(SCR_ARG_WINDOW);
- NEXT_ARG(SCR_ARG_FSTRING);}
+ CHECK("protocol-disconnected") { NEXT_ARG(QUERY_ARG_CHARP); }
+ else CHECK("protocol-status") { NEXT_ARG(QUERY_ARG_CHARP);
+ NEXT_ARG(QUERY_ARG_CHARP);
+ NEXT_ARG(QUERY_ARG_CHARP); /* XXX, need hacks */
+ NEXT_ARG(QUERY_ARG_CHARP); }
+ else CHECK("protocol-message") { NEXT_ARG(QUERY_ARG_CHARP);
+ NEXT_ARG(QUERY_ARG_CHARP);
+ NEXT_ARG(QUERY_ARG_CHARPP);
+ NEXT_ARG(QUERY_ARG_CHARP);
+/* NEXT_ARG(QUERY_ARG_UNITPP); */
+ NEXT_ARG(QUERY_ARG_INT); /* time_t */
+ NEXT_ARG(QUERY_ARG_INT); }
+ else CHECK("protocol-message-post") { NEXT_ARG(QUERY_ARG_CHARP);
+ NEXT_ARG(QUERY_ARG_CHARP);
+ NEXT_ARG(QUERY_ARG_CHARPP);
+ NEXT_ARG(QUERY_ARG_CHARP);
+/* NEXT_ARG(QUERY_ARG_UNITPP); */
+ NEXT_ARG(QUERY_ARG_INT); /* time_t */
+ NEXT_ARG(QUERY_ARG_INT); }
+ else CHECK("protocol-message-received") { NEXT_ARG(QUERY_ARG_CHARP);
+ NEXT_ARG(QUERY_ARG_CHARP);
+ NEXT_ARG(QUERY_ARG_CHARPP);
+ NEXT_ARG(QUERY_ARG_CHARP);
+/* NEXT_ARG(QUERY_ARG_UNITPP); */
+ NEXT_ARG(QUERY_ARG_INT); /* time_t */
+ NEXT_ARG(QUERY_ARG_INT); }
+ else CHECK("protocol-message-sent") { NEXT_ARG(QUERY_ARG_CHARP);
+ NEXT_ARG(QUERY_ARG_CHARP);
+ NEXT_ARG(QUERY_ARG_CHARP); }
/* IRC */
- else CHECK("irc-kick") { NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_CHARP); }
- else CHECK("irc-protocol-message") { NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_INT);
- NEXT_ARG(SCR_ARG_INT);
- NEXT_ARG(SCR_ARG_INT);
- NEXT_ARG(SCR_ARG_CHARP); }
- else CHECK_("irc-protocol-numeric") { NEXT_ARG(SCR_ARG_CHARP);
- NEXT_ARG(SCR_ARG_CHARPP); }
+ else CHECK_("irc-protocol-numeric") { NEXT_ARG(QUERY_ARG_CHARP);
+ NEXT_ARG(QUERY_ARG_CHARPP); }
/* other */
- else { }
+ else {
+ int i;
+ for (i = 0; i < QUERY_EXTERNAL; i++) {
+ if (!xstrcmp(qname, (query_name(i)))) {
+ /* XXX */
+ debug_error("XXX %s; %d\n", qname, i);
+ break;
+ }
+ }
+ }
#undef CHECK
#undef CHECK_
#undef NEXT_ARG
- temp->self = query_connect(s->plugin, query_name, script_query_handlers, temp);
+ temp->self = query_connect(s->plugin, qname, script_query_handlers, temp);
SCRIPT_BIND_FOOTER(script_queries);
}
Więcej informacji o liście dyskusyjnej ekg2-commit