Browse Source

Removed the "language" crap

svn: 72
Bryan Drewery 23 years ago
parent
commit
5378587fa5
10 changed files with 41 additions and 482 deletions
  1. 1 6
      src/Makefile.in
  2. 1 8
      src/eggdrop.h
  3. 0 412
      src/language.c
  4. 3 8
      src/main.c
  5. 28 25
      src/mem.c
  6. 0 3
      src/mod/console.mod/console.c
  7. 4 9
      src/mod/module.h
  8. 0 2
      src/mod/transfer.mod/transfer.c
  9. 3 3
      src/modules.c
  10. 1 6
      src/proto.h

+ 1 - 6
src/Makefile.in

@@ -18,7 +18,7 @@ CFLAGS = @CFLAGS@ -I.. -I$(top_srcdir) @DEFS@ $(CFLGS)
 CPPFLAGS = @CPPFLAGS@
 
 eggdrop_objs = pcrypt.o settings.o bg.o botcmd.o botmsg.o botnet.o chanprog.o cmds.o \
-dcc.o dccutil.o dns.o flags.o language.o main.o mem.o misc.o \
+dcc.o dccutil.o dns.o flags.o main.o mem.o misc.o \
 misc_file.o modules.o net.o rfc1459.o tcl.o tcldcc.o tclhash.o \
 tclmisc.o tcluser.o userent.o userrec.o users.o
 
@@ -150,11 +150,6 @@ flags.o: ./flags.c main.h ../config.h lang.h eggdrop.h flags.h proto.h \
  ../lush.h misc_file.h cmdt.h tclegg.h tclhash.h chan.h users.h \
  compat/compat.h compat/inet_aton.h ../src/main.h compat/snprintf.h \
  compat/memset.h compat/memcpy.h compat/strcasecmp.h compat/strftime.h
-language.o: ./language.c main.h ../config.h lang.h eggdrop.h flags.h \
- proto.h ../lush.h misc_file.h cmdt.h tclegg.h tclhash.h chan.h \
- users.h compat/compat.h compat/inet_aton.h ../src/main.h \
- compat/snprintf.h compat/memset.h compat/memcpy.h compat/strcasecmp.h \
- compat/strftime.h
 main.o: ./main.c main.h ../config.h lang.h eggdrop.h flags.h proto.h \
  ../lush.h misc_file.h cmdt.h tclegg.h tclhash.h chan.h users.h \
  compat/compat.h compat/inet_aton.h ../src/main.h compat/snprintf.h \

+ 1 - 8
src/eggdrop.h

@@ -52,7 +52,7 @@
 
 #define UHOSTMAX    291 + NICKMAX /* 32 (ident) + 3 (\0, !, @) + NICKMAX */
 #define DIRMAX		512	/* paranoia				*/
-#define LOGLINEMAX	767	/* for misc.c/putlog() <cybah>		*/
+#define LOGLINEMAX	867	/* for misc.c/putlog() <cybah>		*/
 #define BADHANDCHARS	"-,+*=:!.@#;$%&"
 
 #define MAX_BOTS     500
@@ -60,13 +60,6 @@
 
 #define sgrab 2011         /* How much data to allow through sockets. */
 
-/* Language stuff */
-
-#define LANGDIR	"./.language"	/* language file directory		*/
-#define BASELANG "english"	/* language which always gets loaded
-				   before all other languages. You do
-				   not want to change this.		*/
-
 #define op_time_slack (CFG_OPTIMESLACK.gdata ? atoi(CFG_OPTIMESLACK.gdata) : 60)
 
 #ifdef G_AUTOLOCK

+ 0 - 412
src/language.c

@@ -1,412 +0,0 @@
-/*
- * language.c -- handles:
- *   language support code
- *
- */
-
-/*
- * DOES:
- *              Nothing <- typical BB code :)
- *
- * ENVIRONMENT VARIABLES:
- *              EGG_LANG       - language to use (default: "english")
- *              EGG_LANGDIR    - directory with all lang files
- *                               (default: "./language")
- * WILL DO:
- *              Upon loading:
- *              o       default loads section core, if possible.
- *              Commands:
- *              DCC .+lang <language>
- *              DCC .-lang <language>
- *              DCC .+lsec <section>
- *              DCC .-lsec <section>
- *              DCC .relang
- *              DCC .ldump
- *              DCC .lstat
- *
- * FILE FORMAT: language.lang
- *              <textidx>,<text>
- * TEXT MESSAGE USAGE:
- *              get_language(<textidx> [,<PARMS>])
- *
- * ADDING LANGUAGES:
- *              o       Copy an existing <section>.<oldlanguage>.lang to a
- *                      new .lang file and modify as needed.
- *                      Use %s or %d where necessary, for plug-in
- *                      insertions of parameters (see core.english.lang).
- *              o       Ensure <section>.<newlanguage>.lang is in the lang
- *                      directory.
- *              o       .+lang <newlanguage>
- * ADDING SECTIONS:
- *              o       Create a <newsection>.english.lang file.
- *              o       Add add_lang_section("<newsection>"); to your module
- *                      startup function.
- *
- */
-
-#include "main.h"
-
-extern struct dcc_t	*dcc;
-
-
-typedef struct lang_st {
-  struct lang_st *next;
-  char *lang;
-  char *section;
-} lang_sec;
-
-typedef struct lang_pr {
-  struct lang_pr *next;
-  char *lang;
-} lang_pri;
-
-typedef struct lang_t {
-  int idx;
-  char *text;
-  struct lang_t *next;
-} lang_tab;
-
-static lang_tab	*langtab[64];
-static lang_sec	*langsection = NULL;
-static lang_pri	*langpriority = NULL;
-
-static int add_message(int, char *);
-static void read_lang(char *);
-void add_lang_section(char *);
-int del_lang_section(char *);
-int exist_lang_section(char *);
-static char *get_specific_langfile(char *, lang_sec *);
-static char *get_langfile(lang_sec *);
-
-
-/* Add a new preferred language to the list of languages. Newly added
- * languages get the highest priority.
- */
-void add_lang(char *lang)
-{
-  lang_pri *lp = langpriority, *lpo = NULL;
-
-  while (lp) {
-    /* The language already exists, moving to the beginning */
-    if (!strcmp(lang, lp->lang)) {
-      /* Already at the front? */
-      if (!lpo)
-	return;
-      lpo->next = lp->next;
-      lp->next = lpo;
-      langpriority = lp;
-      return;
-    }
-    lpo = lp;
-    lp = lp->next;
-  }
-
-  /* No existing entry, create a new one */
-  lp = nmalloc(sizeof(lang_pri));
-  lp->lang = nmalloc(strlen(lang) + 1);
-  strcpy(lp->lang, lang);
-  lp->next = NULL;
-
-  /* If we have other entries, point to the beginning of the old list */
-  if (langpriority)
-    lp->next = langpriority;
-  langpriority = lp;
-  debug1("LANG: Language loaded: %s", lang);
-}
-
-static int add_message(int lidx, char *ltext)
-{
-  lang_tab *l = langtab[lidx & 63];
-
-  while (l) {
-    if (l->idx && (l->idx == lidx)) {
-      nfree(l->text);
-      l->text = nmalloc(strlen(ltext) + 1);
-      strcpy(l->text, ltext);
-      return 1;
-    }
-    if (!l->next)
-      break;
-    l = l->next;
-  }
-  if (l) {
-    l->next = nmalloc(sizeof(lang_tab));
-    l = l->next;
-  } else
-    l = langtab[lidx & 63] = nmalloc(sizeof(lang_tab));
-  l->idx = lidx;
-  l->text = nmalloc(strlen(ltext) + 1);
-  strcpy(l->text, ltext);
-  l->next = 0;
-  return 0;
-}
-
-/* Parse a language file
- */
-static void read_lang(char *langfile)
-{
-  FILE *FLANG;
-  char lbuf[512];
-  char *ltext = NULL;
-  char *ctmp, *ctmp1;
-  int lidx;
-  int lline = 0;
-  int lskip;
-  int ltexts = 0;
-  int ladd = 0, lupdate = 0;
-
-  FLANG = fopen(langfile, "r");
-  if (FLANG == NULL) {
-    putlog(LOG_MISC, "*", "LANG: unexpected: reading from file %s failed.",
-	   langfile);
-    return;
-  }
-
-  lskip = 0;
-  while (fgets(lbuf, 511, FLANG)) {
-    lline++;
-    if (lbuf[0] != '#' || lskip) {
-      ltext = nrealloc(ltext, 512);
-      if (sscanf(lbuf, "%s", ltext) != EOF) {
-#ifdef LIBSAFE_HACKS
-	if (sscanf(lbuf, "0x%x,%500c", &lidx, ltext) != 1) {
-#else
-	if (sscanf(lbuf, "0x%x,%500c", &lidx, ltext) != 2) {
-#endif
-	  putlog(LOG_MISC, "*", "Malformed text line in %s at %d.",
-		 langfile, lline);
-	} else {
-	  ltexts++;
-	  ctmp = strchr(ltext, '\n');
-	  *ctmp = 0;
-	  while (ltext[strlen(ltext) - 1] == '\\') {
-	    ltext[strlen(ltext) - 1] = 0;
-	    if (fgets(lbuf, 511, FLANG)) {
-	      lline++;
-	      ctmp = strchr(lbuf, '\n');
-	      *ctmp = 0;
-	      ltext = nrealloc(ltext, strlen(lbuf) + strlen(ltext) + 1);
-	      strcpy(strchr(ltext, 0), lbuf);
-	    }
-	  }
-	}
-	/* We gotta fix \n's here as, being arguments to sprintf(),
-	 * they won't get translated.
-	 */
-	ctmp = ltext;
-	ctmp1 = ltext;
-	while (*ctmp1) {
-	  if ((*ctmp1 == '\\') && (*(ctmp1 + 1) == 'n')) {
-	    *ctmp = '\n';
-	    ctmp1++;
-	  } else if ((*ctmp1 == '\\') && (*(ctmp1 + 1) == 't')) {
-	    *ctmp = '\t';
-	    ctmp1++;
-	  } else
-	    *ctmp = *ctmp1;
-	  ctmp++;
-	  ctmp1++;
-	}
-	*ctmp = '\0';
-	if (add_message(lidx, ltext)) {
-	  lupdate++;
-	} else
-	  ladd++;
-      }
-    } else {
-      ctmp = strchr(lbuf, '\n');
-      if (lskip && (strlen(lbuf) == 1 || *(ctmp - 1) != '\\'))
-	lskip = 0;
-    }
-  }
-  nfree(ltext);
-  fclose(FLANG);
-
-  debug3("LANG: %d messages of %d lines loaded from %s", ltexts, lline,
-	 langfile);
-  debug2("LANG: %d adds, %d updates to message table", ladd, lupdate);
-}
-
-/* Returns 1 if the section exists, otherwise 0.
- */
-int exist_lang_section(char *section)
-{
-  lang_sec *ls;
-
-  for (ls = langsection; ls; ls = ls->next)
-    if (!strcmp(section, ls->section))
-      return 1;
-  return 0;
-}
-
-/* Add a new language section. e.g. section "core"
- * Load an apropriate language file for the specified section.
- */
-void add_lang_section(char *section)
-{
-  char		*langfile = NULL;
-  lang_sec	*ls, *ols = NULL;
-  int		 ok = 0;
-
-  for (ls = langsection; ls; ols = ls, ls = ls->next)
-    /* Already know of that section? */
-    if (!strcmp(section, ls->section))
-      return;
-
-  /* Create new section entry */
-  ls = nmalloc(sizeof(lang_sec));
-  ls->section = nmalloc(strlen(section) + 1);
-  strcpy(ls->section, section);
-  ls->lang = NULL;
-  ls->next = NULL;
-
-  /* Connect to existing list of sections */
-  if (ols)
-    ols->next = ls;
-  else
-    langsection = ls;
-  debug1("LANG: Section loaded: %s", section);
-
-  /* Always load base language */
-  langfile = get_specific_langfile(BASELANG, ls);
-  if (langfile) {
-    read_lang(langfile);
-    nfree(langfile);
-    ok = 1;
-  }
-  /* Now overwrite base language with a more preferred one */
-  langfile = get_langfile(ls);
-  if (!langfile) {
-//    if (!ok)
-//      putlog(LOG_MISC, "*", "LANG: No lang files found for section %s.",section);
-    return;
-  }
-  read_lang(langfile);
-  nfree(langfile);
-}
-
-int del_lang_section(char *section)
-{
-  lang_sec *ls, *ols;
-
-  for (ls = langsection, ols = NULL; ls; ols = ls, ls = ls->next)
-    if (ls->section && !strcmp(ls->section, section)) {
-      if (ols)
-	ols->next = ls->next;
-      else
-	langsection = ls->next;
-      nfree(ls->section);
-      if (ls->lang)
-	nfree(ls->lang);
-      nfree(ls);
-      debug1("LANG: Section unloaded: %s", section);
-      return 1;
-    }
-  return 0;
-}
-
-static char *get_specific_langfile(char *language, lang_sec *sec)
-{
-  char *ldir = getenv("EGG_LANGDIR");
-  char *langfile;
-  FILE *sfile = NULL;
-
-  if (!ldir)
-    ldir = LANGDIR;
-  langfile = nmalloc(strlen(ldir) + strlen(sec->section) + strlen(language)+8);
-  sprintf(langfile, "%s/%s.%s.lang", ldir, sec->section, language);
-  sfile = fopen(langfile, "r");
-  if (sfile) {
-    fclose(sfile);
-    /* Save language used for this section */
-    sec->lang = nrealloc(sec->lang, strlen(language) + 1);
-    strcpy(sec->lang, language);
-    return langfile;
-  }
-  nfree(langfile);
-  return NULL;
-}
-
-/* Searches for available language files and returns the file with the
- * most preferred language.
- */
-static char *get_langfile(lang_sec *sec)
-{
-  char *langfile;
-  lang_pri *lp;
-
-  for (lp = langpriority; lp; lp = lp->next) {
-    /* There is no need to reload the same language */
-    if (sec->lang && !strcmp(sec->lang, lp->lang))
-      return NULL;
-    langfile = get_specific_langfile(lp->lang, sec);
-    if (langfile)
-      return langfile;
-  }
-  /* We did not find any files, clear the language field */
-  if (sec->lang)
-    nfree(sec->lang);
-  sec->lang = NULL;
-  return NULL;
-}
-
-static char text[512];
-char *get_language(int idx)
-{
-  lang_tab *l;
-
-  if (!idx)
-    return "MSG-0-";
-  for (l = langtab[idx & 63]; l; l = l->next)
-    if (idx == l->idx)
-      return l->text;
-  egg_snprintf(text, sizeof text, "MSG%03X", idx);
-  return text;
-}
-
-int expmem_language()
-{
-  lang_tab *l;
-  lang_sec *ls;
-  lang_pri *lp;
-  int i, size = 0;
-
-  for (i = 0; i < 64; i++)
-    for (l = langtab[i]; l; l = l->next) {
-      size += sizeof(lang_tab);
-      size += (strlen(l->text) + 1);
-    }
-  for (ls = langsection; ls; ls = ls->next) {
-    size += sizeof(lang_sec);
-    if (ls->section)
-      size += strlen(ls->section)+1;
-    if (ls->lang)
-      size += strlen(ls->lang)+1;
-  }
-  for (lp = langpriority; lp; lp = lp->next) {
-    size += sizeof(lang_pri);
-    if (lp->lang)
-      size += strlen(lp->lang)+1;
-  }
-  return size;
-}
-
-void init_language(int flag)
-{
-  int i;
-  char *deflang;
-
-  if (flag) {
-    for (i = 0; i < 32; i++)
-      langtab[i] = 0;
-    /* The default language is always BASELANG as language files are
-     * gauranteed to exist in that language.
-     */
-    add_lang(BASELANG);
-    /* Let the user choose a different, preferred language */
-    deflang = getenv("EGG_LANG");
-    if (deflang)
-      add_lang(deflang);
-    add_lang_section("core");
-  } 
-}

+ 3 - 8
src/main.c

@@ -242,7 +242,7 @@ char *getfullbinname(char *argv0)
 
 int expmem_chanprog(), expmem_users(), expmem_misc(), expmem_dccutil(),
  expmem_botnet(), expmem_tcl(), expmem_tclhash(), expmem_net(),
- expmem_modules(int), expmem_language(), expmem_tcldcc(),
+ expmem_modules(int), expmem_tcldcc(),
  expmem_tclmisc();
 
 /* For mem.c : calculate memory we SHOULD be using
@@ -258,7 +258,7 @@ int expected_memory(void)
 
   tot = expmem_main() + expmem_chanprog() + expmem_users() + expmem_misc() +
     expmem_dccutil() + expmem_botnet() + expmem_tcl() + expmem_tclhash() +
-    expmem_net() + expmem_modules(0) + expmem_language() + expmem_tcldcc() +
+    expmem_net() + expmem_modules(0) + expmem_tcldcc() +
     expmem_tclmisc();
   return tot;
 }
@@ -906,8 +906,7 @@ void check_static(char *, char *(*)());
 
 #include "mod/static.h"
 int init_userrec(), init_mem(), init_dcc_max(), init_userent(), init_misc(), init_bots(),
- init_net(), init_modules(), init_tcl(int, char **),
- init_language(int), init_botcmd();
+ init_net(), init_modules(), init_tcl(int, char **), init_botcmd();
 
 void checklockfile()
 {
@@ -1467,8 +1466,6 @@ Context;
   chmod(cfile, S_IRUSR | S_IWUSR | S_IXUSR);
 
 Context;
-  init_language(1);
-
   init_dcc_max();
   init_userent();
   init_misc();
@@ -1482,7 +1479,6 @@ Context;
   kill_tcl();
   init_tcl(argc, argv);
 #endif
-  init_language(0);
   init_botcmd();
   link_statics();
   module_load(ENCMOD);
@@ -1963,7 +1959,6 @@ Context;
 	flushlogs();
 	kill_tcl();
 	init_tcl(argc, argv);
-	init_language(0);
 
 	/* this resets our modules which we didn't unload (encryption and uptime) */
 	for (p = module_list; p; p = p->next) {

+ 28 - 25
src/mem.c

@@ -46,7 +46,10 @@ int expmem_tclhash();
 int expmem_tclmisc();
 int expmem_net();
 int expmem_modules();
-int expmem_language();
+int expmem_language() 
+{
+  return 0;
+}
 int expmem_tcldcc();
 int expmem_dns();
 
@@ -130,29 +133,29 @@ void debug_mem_to_dcc(int idx)
     if (p)
       *p = 0;
     l = memtbl[i].size;
-    if (!strcmp(fn, "language.c"))
+    if (!strcmp(fn, "xlanguage.c"))
       use[0] += l;
-    else if (!strcmp(fn, "chanprog.c"))
+    else if (!strcmp(fn, "xchanprog.c"))
       use[1] += l;
-    else if (!strcmp(fn, "misc.c"))
+    else if (!strcmp(fn, "xmisc.c"))
       use[2] += l;
-    else if (!strcmp(fn, "userrec.c"))
+    else if (!strcmp(fn, "xuserrec.c"))
       use[3] += l;
-    else if (!strcmp(fn, "net.c"))
+    else if (!strcmp(fn, "xnet.c"))
       use[4] += l;
-    else if (!strcmp(fn, "dccutil.c"))
+    else if (!strcmp(fn, "xdccutil.c"))
       use[5] += l;
-    else if (!strcmp(fn, "botnet.c"))
+    else if (!strcmp(fn, "xbotnet.c"))
       use[6] += l;
-    else if (!strcmp(fn, "tcl.c"))
+    else if (!strcmp(fn, "xtcl.c"))
       use[7] += l;
-    else if (!strcmp(fn, "tclhash.c"))
+    else if (!strcmp(fn, "xtclhash.c"))
       use[8] += l;
-    else if (!strcmp(fn, "tclmisc.c"))
+    else if (!strcmp(fn, "xtclmisc.c"))
       use[9] += l;
-    else if (!strcmp(fn, "modules.c"))
+    else if (!strcmp(fn, "xmodules.c"))
       use[10] += l;
-    else if (!strcmp(fn, "tcldcc.c"))
+    else if (!strcmp(fn, "xtcldcc.c"))
       use[11] += l;
     else if (!strcmp(fn, "dns.c"))
       use[12] += l;
@@ -166,40 +169,40 @@ void debug_mem_to_dcc(int idx)
   for (i = 0; i < MAX_MEM; i++) {
     switch (i) {
     case 0:
-      strcpy(fn, "language.c");
+      strcpy(fn, "xlanguage.c");
       break;
     case 1:
-      strcpy(fn, "chanprog.c");
+      strcpy(fn, "xchanprog.c");
       break;
     case 2:
-      strcpy(fn, "misc.c");
+      strcpy(fn, "xmisc.c");
       break;
     case 3:
-      strcpy(fn, "userrec.c");
+      strcpy(fn, "xuserrec.c");
       break;
     case 4:
-      strcpy(fn, "net.c");
+      strcpy(fn, "xnet.c");
       break;
     case 5:
-      strcpy(fn, "dccutil.c");
+      strcpy(fn, "xdccutil.c");
       break;
     case 6:
-      strcpy(fn, "botnet.c");
+      strcpy(fn, "xbotnet.c");
       break;
     case 7:
-      strcpy(fn, "tcl.c");
+      strcpy(fn, "xtcl.c");
       break;
     case 8:
-      strcpy(fn, "tclhash.c");
+      strcpy(fn, "xtclhash.c");
       break;
     case 9:
-      strcpy(fn, "tclmisc.c");
+      strcpy(fn, "xtclmisc.c");
       break;
     case 10:
-      strcpy(fn, "modules.c");
+      strcpy(fn, "xmodules.c");
       break;
     case 11:
-      strcpy(fn, "tcldcc.c");
+      strcpy(fn, "xtcldcc.c");
       break;
     case 12:
       strcpy(fn, "dns.c");

+ 0 - 3
src/mod/console.mod/console.c

@@ -385,9 +385,7 @@ static char *console_close()
   rem_builtins(H_chon, mychon);
   rem_builtins_dcc(H_dcc, mydcc);
   rem_tcl_ints(myints);
-  //rem_help_reference("console.help");
   del_entry_type(&USERENTRY_CONSOLE);
-  del_lang_section("console");
   module_undepend(MODULE_NAME);
   return NULL;
 }
@@ -413,6 +411,5 @@ char *console_start(Function * global_funcs)
   add_tcl_ints(myints);
   USERENTRY_CONSOLE.get = def_get;
   add_entry_type(&USERENTRY_CONSOLE);
-  add_lang_section("console");
   return NULL;
 }

+ 4 - 9
src/mod/module.h

@@ -280,7 +280,7 @@
 /* 148 - 151 */
 #define do_tcl ((void (*)(char *, char *))global[148])
 #define readtclprog ((int (*)(const char *))global[149])
-#define get_language ((char *(*)(int))global[150])
+/* #define get_language ((char *(*)(int))global[150]) */
 #define def_get ((void *(*)(struct userrec *, struct user_entry *))global[151])
 /* 152 - 155 */
 #define makepass ((void (*) (char *))global[152])
@@ -288,12 +288,7 @@
 #define maskhost ((void (*)(const char *, char *))global[154])
 #define show_motd ((void(*)(int))global[155])
 /* 156 - 159 */
-/*
-#define tellhelp ((void(*)(int, char *, struct flag_record *, int))global[156])
-#define showhelp ((void(*)(char *, char *, struct flag_record *, int))global[157])
-#define add_help_reference ((void(*)(char *))global[158])
-#define rem_help_reference ((void(*)(char *))global[159])
-*/
+
 /* 160 - 163 */
 #define touch_laston ((void (*)(struct userrec *,char *,time_t))global[160])
 #define add_mode ((void (*)(struct chanset_t *,char,char,char *))(*(Function**)(global[161])))
@@ -301,7 +296,7 @@
 #define in_chain ((int (*)(char *))global[163])
 /* 164 - 167 */
 #define add_note ((int (*)(char *,char*,char*,int,int))global[164])
-#define del_lang_section ((int(*)(char *))global[165])
+/* 165 */
 #define detect_dcc_flood ((int (*) (time_t *,struct chat_info *,int))global[166])
 #define flush_lines ((void(*)(int,struct chat_info*))global[167])
 /* 168 - 171 */
@@ -384,7 +379,7 @@
 #endif
 #define force_expire (*(int *)(global[227]))	/* Rufus */
 /* 228 - 231 */
-#define add_lang_section ((void(*)(char *))global[228])
+/* 228 */
 #define user_realloc(x,y) ((void *(*)(void *,int,char *,int))global[229])((x),(y),__FILE__,__LINE__)
 #define nrealloc(x,y) ((void *)(global[230]((x),(y),MODULE_NAME,__FILE__,__LINE__)))
 #define xtra_set ((int(*)(struct userrec *,struct user_entry *, void *))global[231])

+ 0 - 2
src/mod/transfer.mod/transfer.c

@@ -2032,7 +2032,6 @@ Context;
     rem_builtins(H_ctcp, transfer_ctcps);
   rem_tcl_commands(mytcls);
   rem_tcl_ints(myints);
-  del_lang_section("transfer");
   module_undepend(MODULE_NAME);
   return NULL;
 }
@@ -2105,6 +2104,5 @@ char *transfer_start(Function *global_funcs)
 
   USERENTRY_FSTAT.get = def_get;
   add_entry_type(&USERENTRY_FSTAT);
-  add_lang_section("transfer");
   return NULL;
 }

+ 3 - 3
src/modules.c

@@ -324,7 +324,7 @@ Function global_table[] =
   /* 148 - 151 */
   (Function) do_tcl,
   (Function) readtclprog,
-  (Function) get_language,
+  (Function) 0,
   (Function) def_get,
   /* 152 - 155 */
   (Function) makepass,
@@ -343,7 +343,7 @@ Function global_table[] =
   (Function) in_chain,
   /* 164 - 167 */
   (Function) add_note,
-  (Function) del_lang_section,
+  (Function) 0,
   (Function) detect_dcc_flood,
   (Function) flush_lines,
   /* 168 - 171 */
@@ -432,7 +432,7 @@ Function global_table[] =
 #endif
   (Function) & force_expire,	/* int					*/
   /* 228 - 231 */
-  (Function) add_lang_section,
+  (Function) 0,
   (Function) _user_realloc,
   (Function) mod_realloc,
   (Function) xtra_set, 

+ 1 - 6
src/proto.h

@@ -177,12 +177,6 @@ void gotdcc(char *, char *, struct userrec *, char *);
 void do_boot(int, char *, char *);
 int detect_dcc_flood(time_t *, struct chat_info *, int);
 
-/* language.c */
-char *get_language(int);
-void add_lang_section(char *);
-int del_lang_section(char *);
-int exist_lang_section(char *);
-
 /* main.c */
 void do_fork();
 int crontab_exists();
@@ -215,6 +209,7 @@ char *progname();
 void init_settings();
 
 /* misc.c */
+char *wbanner();
 char *replace(char *, char *, char *);
 #ifdef S_GARBLESTRINGS
 char *degarble(int, char *);