fixed memory leak in tools.c and fixed allocation size of ChanUser entries
[NeonServV5.git] / src / lang.c
index e50e752741e1a2a54e6812c6c96b2d09b16c2d05..1c0a027cdf1d3a293f6b2d3c10cd96030711aed5 100644 (file)
@@ -1,3 +1,19 @@
+/* lang.c - NeonServ v5.3
+ * Copyright (C) 2011-2012  Philipp Kreil (pk910)
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License 
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. 
+ */
 #include "lang.h"
 #include "UserNode.h"
 #include "DBHelper.h"
@@ -141,10 +157,13 @@ void register_language_string(struct language *lang, char *ident, char *text) {
         if(a) {
             switch(a[1]) {
                 case 'b':
-                    tmp[tmppos++] = '\002';
+                    tmp[tmppos++] = 2;
                     break;
                 case 'k':
-                    tmp[tmppos++] = '\003';
+                    tmp[tmppos++] = 3;
+                    break;
+                case 'u':
+                    tmp[tmppos++] = 31;
                     break;
                 default:
                     //unknown - just write it
@@ -160,7 +179,7 @@ void register_language_string(struct language *lang, char *ident, char *text) {
 
 char *get_language_string(struct UserNode *user, const char* msg_ident) {
     struct language* lang;
-    if((user->flags & USERFLAG_ISAUTHED)) {
+    if(user && (user->flags & USERFLAG_ISAUTHED)) {
         loadUserSettings(user);
         lang = user->language;
     } else