}
void reply(struct ClientSocket *client, struct UserNode *user, const char *text, ...) {
- char *reply_format = get_language_string(user, text);
+ const char *reply_format = get_language_string(user, text);
if(reply_format == NULL)
reply_format = text;
if((user->flags & USERFLAG_ISAUTHED) && !(user->flags & USERFLAG_LOADED_SETTINGS))
int pos;
if (!(client->flags & SOCKET_FLAG_CONNECTED)) return;
sendBuf[0] = '\0';
- va_start(arg_list, formatBuf);
+ va_start(arg_list, text);
pos = vsnprintf(sendBuf, MAXLEN - 2, formatBuf, arg_list);
va_end(arg_list);
if (pos < 0 || pos > (MAXLEN - 2)) pos = MAXLEN - 2;
}
static struct language* add_language(char *langtag, char *langname) {
- int index;
- for(index = 0; index < MAXLANGUAGES; index++) {
- if(langdict[index] == NULL) break;
- if(!strcmp(langdict[index]->langname, langname) || !strcmp(langdict[index]->langtag, langtag))
- return langdict[index];
+ int cindex;
+ for(cindex = 0; cindex < MAXLANGUAGES; cindex++) {
+ if(langdict[cindex] == NULL) break;
+ if(!strcmp(langdict[cindex]->langname, langname) || !strcmp(langdict[cindex]->langtag, langtag))
+ return langdict[cindex];
}
- if(index == MAXLANGUAGES) return NULL;
+ if(cindex == MAXLANGUAGES) return NULL;
struct language *lang = malloc(sizeof(*lang));
if (!lang) {
perror("malloc() failed");
}
struct language* get_language_by_tag(char *tag) {
- int index;
- for(index = 0; index < MAXLANGUAGES; index++) {
- if(langdict[index] == NULL) break;
- if(!strcmp(langdict[index]->langtag, tag))
- return langdict[index];
+ int cindex;
+ for(cindex = 0; cindex < MAXLANGUAGES; cindex++) {
+ if(langdict[cindex] == NULL) break;
+ if(!strcmp(langdict[cindex]->langtag, tag))
+ return langdict[cindex];
}
return NULL;
}
struct language* get_language_by_name(char *name) {
- int index;
- for(index = 0; index < MAXLANGUAGES; index++) {
- if(langdict[index] == NULL) break;
- if(!strcmp(langdict[index]->langname, name))
- return langdict[index];
+ int cindex;
+ for(cindex = 0; cindex < MAXLANGUAGES; cindex++) {
+ if(langdict[cindex] == NULL) break;
+ if(!strcmp(langdict[cindex]->langname, name))
+ return langdict[cindex];
}
return NULL;
}
if(lang_c == NULL)
lang_c = add_language(DEFAULT_LANG_TAG, DEFAULT_LANG_NAME);
struct language_table *lang_entry;
- int index;
+ int cindex;
while(msgtab->ident) {
- index = get_entry_index(msgtab->ident);
+ cindex = get_entry_index(msgtab->ident);
lang_entry = malloc(sizeof(*lang_entry));
if (!lang_entry) {
perror("malloc() failed");
}
lang_entry->ident = strdup(msgtab->ident);
lang_entry->text = strdup(msgtab->text);
- lang_entry->next = lang_c->entrys[index];
- lang_c->entrys[index] = lang_entry;
+ lang_entry->next = lang_c->entrys[cindex];
+ lang_c->entrys[cindex] = lang_entry;
msgtab++;
}
}
-char *get_language_string(struct UserNode *user, char* msg_ident) {
+char *get_language_string(struct UserNode *user, const char* msg_ident) {
struct language* lang;
if((user->flags & USERFLAG_ISAUTHED)) {
if(!(user->flags & USERFLAG_LOADED_SETTINGS))
lang = user->language;
} else
lang = lang_c;
- int index = get_entry_index(msg_ident);
+ int cindex = get_entry_index(msg_ident);
struct language_table* entry;
- for(entry = lang->entrys[index]; entry; entry = entry->next) {
+ for(entry = lang->entrys[cindex]; entry; entry = entry->next) {
if(!strcmp(entry->ident, msg_ident))
return entry->text;
}
+ return NULL;
}
struct language_table **entrys;
};
+void init_lang();
+void free_lang();
struct language* get_language_by_tag(char *tag);
struct language* get_language_by_name(char *name);
struct language* get_default_language();
-void register_default_language_table(const struct default_language_entry **msgtab);
-char *get_language_string(struct UserNode *user, char* msg_ident);
+void register_default_language_table(const struct default_language_entry *msgtab);
+char *get_language_string(struct UserNode *user, const char* msg_ident);
#endif
\ No newline at end of file
#include "ChanNode.h"
#include "ChanUser.h"
#include "WHOHandler.h"
+#include "lang.h"
struct trigger_callback {
int botid;
static struct cmd_function *cmd_functions = NULL;
static struct trigger_callback *trigger_callbacks = NULL;
+static const struct default_language_entry msgtab[] = {
+
+ {NULL, NULL}
+};
+
static int get_binds_index(char first_char) {
if(tolower(first_char) >= 'a' && tolower(first_char) <= 'z') {
return tolower(first_char - 'a');
cmd_binds = calloc(27, sizeof(*cmd_binds));
bind_chanmsg(got_chanmsg);
bind_privmsg(got_privmsg);
+ register_default_language_table(msgtab);
}
void free_modcmd() {