[ekg2-commit] ekg2: jogger.c (HEAD) messages.c (HEAD) [peres]
CVS commit
cvs w toxygen.net
Sob, 5 Maj 2007, 11:01:55 CEST
Module name: ekg2
Changes by: peres 2007-05-05 11:01:53
Modified files:
jogger.c messages.c
Log message:
- status sync on plugin load,
- better way of doing jogger_texts iconvization.
Index: jogger.c
===================================================================
RCS file: /home/cvs/ekg2/plugins/jogger/jogger.c,v
diff -d -u -r1.6 -r1.7
--- jogger.c 4 May 2007 22:29:14 -0000 1.6
+++ jogger.c 5 May 2007 09:01:53 -0000 1.7
@@ -31,8 +31,8 @@
static int jogger_plugin_destroy(void);
/* messages.c */
-void localize_texts();
-void free_texts();
+QUERY(jogger_localize_texts);
+void jogger_free_texts(int real_free);
QUERY(jogger_msghandler);
COMMAND(jogger_msg);
COMMAND(jogger_subscribe);
@@ -155,15 +155,14 @@
if (xstrcmp(tmpb, tmp)) /* replace nickname with UID */
session_set(s, "used_uid", tmpb);
- /* update status */
-#if 0 /* XXX: startup problems */
- {
+ { /* update status */
userlist_t *u = userlist_find(js, tmpb);
- session_connected_set(s, (u->status > EKG_STATUS_NA));
- session_status_set(s, u->status);
+ if (session_connected_get(s) != (u && (u->status > EKG_STATUS_NA))) {
+ session_connected_set(s, (u && (u->status > EKG_STATUS_NA)));
+ session_status_set(s, (u ? u->status : EKG_STATUS_NA));
+ }
}
-#endif
}
/* we need some dummy commands, e.g. /disconnect */
@@ -202,6 +201,7 @@
query_connect_id(&jogger_plugin, PROTOCOL_STATUS, jogger_statuschanged, NULL);
query_connect_id(&jogger_plugin, PROTOCOL_DISCONNECTED, jogger_statuscleanup, NULL);
query_connect_id(&jogger_plugin, PROTOCOL_MESSAGE, jogger_msghandler, NULL);
+ query_connect_id(&jogger_plugin, CONFIG_POSTINIT, jogger_localize_texts, NULL);
#define JOGGER_CMDFLAGS SESSION_MUSTBELONG
#define JOGGER_CMDFLAGS_TARGET SESSION_MUSTBELONG|COMMAND_ENABLEREQPARAMS|COMMAND_PARAMASTARGET
@@ -216,9 +216,9 @@
#undef JOGGER_CMDFLAGS_TARGET
#undef JOGGER_CMDFLAGS
- localize_texts();
+ jogger_free_texts(0); /* set NULLs */
- plugin_register(&jogger_plugin, prio*3);
+ plugin_register(&jogger_plugin, prio);
return 0;
}
@@ -226,7 +226,7 @@
static int jogger_plugin_destroy(void) {
plugin_unregister(&jogger_plugin);
- free_texts();
+ jogger_free_texts(1);
return 0;
}
Index: messages.c
===================================================================
RCS file: /home/cvs/ekg2/plugins/jogger/messages.c,v
diff -d -u -r1.9 -r1.10
--- messages.c 4 May 2007 22:29:14 -0000 1.9
+++ messages.c 5 May 2007 09:01:53 -0000 1.10
@@ -57,10 +57,21 @@
char *jogger_text[JOGGER_TEXT_MAX];
-void localize_texts() {
+void jogger_free_texts(int real_free) {
+ int i;
+
+ for (i = 0; i < JOGGER_TEXT_MAX; i++) {
+ if (real_free)
+ xfree(jogger_text[i]);
+ jogger_text[i] = NULL;
+ }
+}
+
+QUERY(jogger_localize_texts) {
int i;
void *p = ekg_convert_string_init("UTF-8", NULL, NULL);
+ jogger_free_texts(1);
for (i = 0; i < JOGGER_TEXT_MAX; i++) {
char *s = ekg_convert_string_p(utf_jogger_text[i], p);
@@ -69,13 +80,8 @@
jogger_text[i] = s;
}
ekg_convert_string_destroy(p);
-}
-
-void free_texts() {
- int i;
- for (i = 0; i < JOGGER_TEXT_MAX; i++)
- xfree(jogger_text[i]);
+ return 0;
}
QUERY(jogger_msghandler) {
Więcej informacji o liście dyskusyjnej ekg2-commit