[ekg2-commit] ekg2: drafts.c (HEAD) jogger.c (HEAD) messages.c (HEAD) [peres]
CVS commit
cvs w toxygen.net
Nie, 6 Maj 2007, 11:31:29 CEST
Module name: ekg2
Changes by: peres 2007-05-06 11:31:27
Modified files:
drafts.c jogger.c messages.c
Log message:
- iconv in drafts.c,
- more secure iconved tables handling (CC will issue a warning, if #define
specifies less elements than we really declare).
Index: drafts.c
===================================================================
RCS file: /home/cvs/ekg2/plugins/jogger/drafts.c,v
diff -d -u -r1.4 -r1.5
--- drafts.c 6 May 2007 09:16:33 -0000 1.4
+++ drafts.c 6 May 2007 09:31:26 -0000 1.5
@@ -31,9 +31,11 @@
#include <ekg/windows.h>
#include <ekg/xmalloc.h>
- /* XXX, iconvize */
+#define JOGGER_KEYS_MAX 25
+#define JOGGER_VALUES_MAX 14
+
/* 10 char-long don't use ':', because they're already on limit (longer ones are discarded) */
-const char *jogger_header_keys[] = {
+const char *utf_jogger_header_keys[JOGGER_KEYS_MAX] = {
"tytul:", "temat:", "subject:", "tytuĹ:", NULL,
"tag:", NULL,
"poziom:", "level:", NULL,
@@ -45,7 +47,7 @@
NULL
};
-const char *jogger_header_values[] = {
+const char *utf_jogger_header_values[JOGGER_VALUES_MAX] = {
"off", "no", "nie", "wylacz", "wyĹÄ
cz",
"on", "yes", "tak", "wlacz", "wĹÄ
cz", NULL,
@@ -53,6 +55,44 @@
NULL
};
+char *jogger_header_keys[JOGGER_KEYS_MAX];
+char *jogger_header_values[JOGGER_VALUES_MAX];
+
+void jogger_free_headers(int real_free) {
+ int i;
+
+ for (i = 0; i < JOGGER_KEYS_MAX; i++) {
+ if (real_free)
+ xfree(jogger_header_keys[i]);
+ jogger_header_keys[i] = NULL;
+ }
+ for (i = 0; i < JOGGER_VALUES_MAX; i++) {
+ if (real_free)
+ xfree(jogger_header_values[i]);
+ jogger_header_values[i] = NULL;
+ }
+}
+
+void jogger_localize_headers(void *p) {
+ int i;
+
+ jogger_free_headers(1);
+ for (i = 0; i < JOGGER_KEYS_MAX; i++) {
+ char *s = ekg_convert_string_p(utf_jogger_header_keys[i], p);
+
+ if (!s)
+ s = xstrdup(utf_jogger_header_keys[i]);
+ jogger_header_keys[i] = s;
+ }
+ for (i = 0; i < JOGGER_VALUES_MAX; i++) {
+ char *s = ekg_convert_string_p(utf_jogger_header_values[i], p);
+
+ if (!s)
+ s = xstrdup(utf_jogger_header_values[i]);
+ jogger_header_values[i] = s;
+ }
+}
+
/**
* jogger_openfile()
*
Index: jogger.c
===================================================================
RCS file: /home/cvs/ekg2/plugins/jogger/jogger.c,v
diff -d -u -r1.16 -r1.17
--- jogger.c 6 May 2007 09:16:33 -0000 1.16
+++ jogger.c 6 May 2007 09:31:26 -0000 1.17
@@ -21,6 +21,7 @@
#include <ekg/plugins.h>
#include <ekg/queries.h>
#include <ekg/sessions.h>
+#include <ekg/stuff.h>
#include <ekg/themes.h>
#include <ekg/userlist.h>
#include <ekg/xmalloc.h>
@@ -40,6 +41,8 @@
COMMAND(jogger_subscribe);
/* drafts.c */
+void jogger_localize_headers();
+void jogger_free_headers(int real_free);
COMMAND(jogger_prepare);
COMMAND(jogger_publish);
@@ -196,8 +199,11 @@
static QUERY(jogger_postconfig) {
list_t l;
+ void *p = ekg_convert_string_init("UTF-8", NULL, NULL);
- jogger_localize_texts();
+ jogger_localize_texts(p);
+ jogger_localize_headers(p);
+ ekg_convert_string_destroy(p);
for (l = sessions; l; l = l->next) {
session_t *js = l->data;
@@ -292,6 +298,7 @@
plugin_unregister(&jogger_plugin);
jogger_free_texts(1);
+ jogger_free_headers(1);
return 0;
}
Index: messages.c
===================================================================
RCS file: /home/cvs/ekg2/plugins/jogger/messages.c,v
diff -d -u -r1.14 -r1.15
--- messages.c 5 May 2007 21:13:36 -0000 1.14
+++ messages.c 6 May 2007 09:31:26 -0000 1.15
@@ -28,12 +28,12 @@
#include <ekg/userlist.h>
#include <ekg/xmalloc.h>
+#define JOGGER_TEXT_MAX 13
+
/* jogger.c */
session_t *jogger_session_find_uid(session_t *s, const char *uid);
-/* Thanks to sparrow, we need to pack big&stinky iconv into this small plugin */
-
-const char *utf_jogger_text[] = {
+const char *utf_jogger_text[JOGGER_TEXT_MAX] = {
"Do Twojego joggera zostaĹ dodany komentarz", /* [0] url (#eid[ / Texti*])\n----------------\n */
"Pojawil sie nowy komentarz do wpisu", /* [1] as above */
@@ -53,8 +53,6 @@
"Do Ĺledzonego joggera zostaĹ dodany nowy wpis:", /* [12] url (#eid[ / Texti*]) */
};
-#define JOGGER_TEXT_MAX 13
-
char *jogger_text[JOGGER_TEXT_MAX];
void jogger_free_texts(int real_free) {
@@ -67,9 +65,8 @@
}
}
-void jogger_localize_texts() {
+void jogger_localize_texts(void *p) {
int i;
- void *p = ekg_convert_string_init("UTF-8", NULL, NULL);
jogger_free_texts(1);
for (i = 0; i < JOGGER_TEXT_MAX; i++) {
@@ -79,7 +76,6 @@
s = xstrdup(utf_jogger_text[i]);
jogger_text[i] = s;
}
- ekg_convert_string_destroy(p);
}
QUERY(jogger_msghandler) {
Więcej informacji o liście dyskusyjnej ekg2-commit