[cvslog] Module eggdrop1.7: Change committed

cvslog cvs at tsss.org
Fri Oct 26 17:23:00 CST 2001


CVSROOT    : /usr/local/cvsroot
Module     : eggdrop1.7
Commit time: 2001-10-26 22:22:33 UTC
Commited by: stdarg <stdarg at techmonkeys.org>

Modified files:
     src/chanprog.c src/cmds.c src/main.c src/modules.c src/tcl.c
     src/tcldcc.c src/tclegg.h src/tclhash.c src/tclhash.h
     src/mod/module.h src/mod/filesys.mod/filesys.c
     src/mod/notes.mod/notes.c src/mod/transfer.mod/transfer.c
     src/mod/transfer.mod/transfer.h

Log message:

* Converted the last few bind tables (I think).
* Removed unused builtin_* functions.

---------------------- diff included ----------------------
Index: eggdrop1.7/src/chanprog.c
diff -u eggdrop1.7/src/chanprog.c:1.35 eggdrop1.7/src/chanprog.c:1.36
--- eggdrop1.7/src/chanprog.c:1.35	Thu Oct 18 20:55:04 2001
+++ eggdrop1.7/src/chanprog.c	Fri Oct 26 17:22:22 2001
@@ -1,11 +1,10 @@
 /*
  * chanprog.c -- handles:
  *   rmspace()
- *   timers, utimers
  *   telling the current programmed settings
  *   initializing a lot of stuff and loading the tcl scripts
  *
- * $Id: chanprog.c,v 1.35 2001/10/19 01:55:04 tothwolf Exp $
+ * $Id: chanprog.c,v 1.36 2001/10/26 22:22:22 stdarg Exp $
  */
 /*
  * Copyright (C) 1997 Robey Pointer
@@ -49,10 +48,6 @@
 			 protect_readonly, make_userfile, noshare,
 			 ignore_time;
 
-tcl_timer_t	 *timer = NULL;		/* Minutely timer		*/
-tcl_timer_t	 *utimer = NULL;	/* Secondly timer		*/
-unsigned long	  timer_id = 1;		/* Next timer of any sort will
-					   have this number		*/
 struct chanset_t *chanset = NULL;	/* Channel list			*/
 char		  admin[121] = "";	/* Admin info			*/
 char		  origbotname[NICKLEN + 1];
Index: eggdrop1.7/src/cmds.c
diff -u eggdrop1.7/src/cmds.c:1.76 eggdrop1.7/src/cmds.c:1.77
--- eggdrop1.7/src/cmds.c:1.76	Tue Oct 23 03:47:51 2001
+++ eggdrop1.7/src/cmds.c	Fri Oct 26 17:22:22 2001
@@ -3,7 +3,7 @@
  *   commands from a user via dcc
  *   (split in 2, this portion contains no-irc commands)
  *
- * $Id: cmds.c,v 1.76 2001/10/23 08:47:51 stdarg Exp $
+ * $Id: cmds.c,v 1.77 2001/10/26 22:22:22 stdarg Exp $
  */
 /*
  * Copyright (C) 1997 Robey Pointer
@@ -32,7 +32,6 @@
 extern struct chanset_t	*chanset;
 extern struct dcc_t	*dcc;
 extern struct userrec	*userlist;
-extern tcl_timer_t	*timer, *utimer;
 extern int		 dcc_total, remote_boots, backgrd, make_userfile,
 			 do_restart, conmask, require_p, must_be_owner,
 			 strict_host, term_z, con_chan;
@@ -882,13 +881,11 @@
   char oldhandle[HANDLEN + 1], newhandle[HANDLEN + 1];
   int i;
 
-  putlog(LOG_MISC, "*", "boogaboo!");
-  return(0);
   strncpyz(newhandle, newsplit(&par), sizeof newhandle);
 
   if (!newhandle[0]) {
     dprintf(idx, "Usage: handle <new-handle>\n");
-    return;
+    return(0);
   }
   for (i = 0; i < strlen(newhandle); i++)
     if ((newhandle[i] <= 32) || (newhandle[i] >= 127) || (newhandle[i] == '@'))
@@ -904,11 +901,11 @@
   } else {
     strncpyz(oldhandle, dcc[idx].nick, sizeof oldhandle);
     if (change_handle(u, newhandle)) {
-      putlog(LOG_CMDS, "*", "#%s# handle %s", oldhandle, newhandle);
       dprintf(idx, "Okay, changed.\n");
     } else
       dprintf(idx, "Failed.\n");
   }
+  return(1);
 }
 
 static void cmd_chpass(struct userrec *u, int idx, char *par)
@@ -1250,12 +1247,6 @@
   botnet_send_trace(i, x, par, y);
 }
 
-static void cmd_binds(struct userrec *u, int idx, char *par)
-{
-  putlog(LOG_CMDS, "*", "#%s# binds %s", dcc[idx].nick, par);
-  tell_binds(idx, par);
-}
-
 static void cmd_banner(struct userrec *u, int idx, char *par)
 {
   char s[1024];
@@ -2774,7 +2765,6 @@
   {"back",		"",	(Function) cmd_back,		NULL},
   {"backup",		"m|m",	(Function) cmd_backup,		NULL},
   {"banner",		"t",	(Function) cmd_banner,		NULL},
-  {"binds",		"m",	(Function) cmd_binds,		NULL},
   {"boot",		"t",	(Function) cmd_boot,		NULL},
   {"botattr",		"t",	(Function) cmd_botattr,		NULL},
   {"botinfo",		"t",	(Function) cmd_botinfo,		NULL},
Index: eggdrop1.7/src/main.c
diff -u eggdrop1.7/src/main.c:1.94 eggdrop1.7/src/main.c:1.95
--- eggdrop1.7/src/main.c:1.94	Sun Oct 21 01:02:48 2001
+++ eggdrop1.7/src/main.c	Fri Oct 26 17:22:22 2001
@@ -5,7 +5,7 @@
  *   command line arguments
  *   context and assert debugging
  *
- * $Id: main.c,v 1.94 2001/10/21 06:02:48 stdarg Exp $
+ * $Id: main.c,v 1.95 2001/10/26 22:22:22 stdarg Exp $
  */
 /*
  * Copyright (C) 1997 Robey Pointer
@@ -74,8 +74,6 @@
 extern struct userrec	*userlist;
 extern struct chanset_t	*chanset;
 extern Tcl_Interp	*interp;
-extern tcl_timer_t	*timer,
-			*utimer;
 extern jmp_buf		 alarmret;
 
 
Index: eggdrop1.7/src/mod/filesys.mod/filesys.c
diff -u eggdrop1.7/src/mod/filesys.mod/filesys.c:1.58 eggdrop1.7/src/mod/filesys.mod/filesys.c:1.59
--- eggdrop1.7/src/mod/filesys.mod/filesys.c:1.58	Thu Oct 18 20:55:07 2001
+++ eggdrop1.7/src/mod/filesys.mod/filesys.c	Fri Oct 26 17:22:22 2001
@@ -2,7 +2,7 @@
  * filesys.c -- part of filesys.mod
  *   main file of the filesys eggdrop module
  *
- * $Id: filesys.c,v 1.58 2001/10/19 01:55:07 tothwolf Exp $
+ * $Id: filesys.c,v 1.59 2001/10/26 22:22:22 stdarg Exp $
  */
 /*
  * Copyright (C) 1997 Robey Pointer
@@ -57,8 +57,7 @@
 
 #define start filesys_LTX_start
 
-static p_tcl_bind_list H_fil;
-static bind_table_t *BT_dcc, *BT_load;
+static bind_table_t *BT_dcc, *BT_load, *BT_file;
 static Function *transfer_funcs = NULL;
 
 /* fcntl.h sets this :/ */
@@ -135,31 +134,16 @@
 /* Check for tcl-bound file command, return 1 if found
  * fil: proc-name <handle> <dcc-handle> <args...>
  */
-static int check_tcl_fil(char *cmd, int idx, char *args)
+static int check_tcl_fil(char *cmd, int idx, char *text)
 {
-  int x;
-  char s[5];
   struct flag_record fr = {FR_GLOBAL | FR_CHAN, 0, 0, 0, 0, 0};
+  int x;
 
   get_user_flagrec(dcc[idx].user, &fr, dcc[idx].u.file->chat->con_chan);
-  sprintf(s, "%ld", dcc[idx].sock);
-  Tcl_SetVar(interp, "_fil1", dcc[idx].nick, 0);
-  Tcl_SetVar(interp, "_fil2", s, 0);
-  Tcl_SetVar(interp, "_fil3", args, 0);
-  x = check_tcl_bind(H_fil, cmd, &fr, " $_fil1 $_fil2 $_fil3",
-		     MATCH_PARTIAL | BIND_USE_ATTR | BIND_HAS_BUILTINS);
-  if (x == BIND_AMBIGUOUS) {
-    dprintf(idx, "Ambigious command.\n");
-    return 0;
-  }
-  if (x == BIND_NOMATCH) {
-    dprintf(idx, "What?  You need 'help'\n");
-    return 0;
+  x = check_bind(BT_file, cmd, &fr, dcc[idx].nick, dcc[idx].sock, text);
+  if (x & BIND_RET_LOG) {
+    putlog(LOG_FILES, "*", "#%s# files: %s %s", dcc[idx].nick, cmd, text);
   }
-  if (x == BIND_EXEC_BRK)
-    return 1;
-  if (x == BIND_EXEC_LOG)
-    putlog(LOG_FILES, "*", "#%s# files: %s %s", dcc[idx].nick, cmd, args);
   return 0;
 }
 
@@ -495,26 +479,6 @@
   return x;
 }
 
-static int builtin_fil STDVAR
-{
-  int idx;
-  Function F = (Function) cd;
-
-  BADARGS(4, 4, " hand idx param");
-  idx = findanyidx(atoi(argv[2]));
-  if (idx < 0 && dcc[idx].type != &DCC_FILES) {
-    Tcl_AppendResult(irp, "invalid idx", NULL);
-    return TCL_ERROR;
-  }
-  if (F == CMD_LEAVE) {
-    Tcl_AppendResult(irp, "break", NULL);
-    return TCL_OK;
-  }
-  (F)(idx, argv[3]);
-  Tcl_ResetResult(irp);
-  return TCL_OK;
-}
-
 static void tout_dcc_files_pass(int i)
 {
   dprintf(i, "Timeout.\n");
@@ -930,11 +894,10 @@
   rem_tcl_ints(myints);
   if (BT_dcc) rem_builtins2(BT_dcc, mydcc);
   if (BT_load) rem_builtins2(BT_load, myload);
-  rem_builtins(H_fil, myfiles);
   rem_help_reference("filesys.help");
   if (BT_ctcp = find_bind_table2("ctcp"))
     rem_builtins2(BT_ctcp, myctcp);
-  del_bind_table(H_fil);
+  del_bind_table2(BT_file);
   del_entry_type(&USERENTRY_DCCDIR);
   module_undepend(MODULE_NAME);
   return NULL;
@@ -954,8 +917,6 @@
   (Function) add_file,
   (Function) incr_file_gots,
   (Function) is_valid,
-  /* 8 - 11 */
-  (Function) & H_fil,
 };
 
 char *start(Function * global_funcs)
@@ -974,12 +935,12 @@
   add_tcl_commands(mytcls);
   add_tcl_strings(mystrings);
   add_tcl_ints(myints);
-  H_fil = add_bind_table("fil", 0, builtin_fil);
+  BT_file = add_bind_table2("file", 3, "sis", MATCH_MASK, BIND_STACKABLE);
   BT_dcc = find_bind_table2("dcc");
   BT_load = find_bind_table2("load");
   if (BT_dcc) add_builtins2(BT_dcc, mydcc);
   if (BT_load) add_builtins2(BT_load, myload);
-  add_builtins(H_fil, myfiles);
+  add_builtins2(BT_file, myfiles);
   add_help_reference("filesys.help");
   init_server_ctcps(0);
   memcpy(&USERENTRY_DCCDIR, &USERENTRY_INFO,
Index: eggdrop1.7/src/mod/module.h
diff -u eggdrop1.7/src/mod/module.h:1.74 eggdrop1.7/src/mod/module.h:1.75
--- eggdrop1.7/src/mod/module.h:1.74	Sun Oct 21 20:49:25 2001
+++ eggdrop1.7/src/mod/module.h	Fri Oct 26 17:22:22 2001
@@ -1,7 +1,7 @@
 /*
  * module.h
  *
- * $Id: module.h,v 1.74 2001/10/22 01:49:25 stdarg Exp $
+ * $Id: module.h,v 1.75 2001/10/26 22:22:22 stdarg Exp $
  */
 /*
  * Copyright (C) 1997 Robey Pointer
@@ -75,10 +75,10 @@
 #define module_depend ((Function *(*)(char *,char *,int,int))global[6])
 #define module_undepend ((int(*)(char *))global[7])
 /* 8 - 11 */
-#define add_bind_table ((p_tcl_bind_list(*)(const char *,int,Function))global[8])
-#define del_bind_table ((void (*) (p_tcl_bind_list))global[9])
-#define find_bind_table ((p_tcl_bind_list(*)(const char *))global[10])
-#define check_tcl_bind ((int (*) (p_tcl_bind_list,const char *,struct flag_record *,const char *, int))global[11])
+/* #define add_bind_table ((p_tcl_bind_list(*)(const char *,int,Function))global[8]) */
+/* #define del_bind_table ((void (*) (p_tcl_bind_list))global[9]) */
+/* #define find_bind_table ((p_tcl_bind_list(*)(const char *))global[10]) */
+/* #define check_tcl_bind ((int (*) (p_tcl_bind_list,const char *,struct flag_record *,const char *, int))global[11]) */
 /* 12 - 15 */
 #define add_builtins ((int (*) (p_tcl_bind_list, cmd_t *))global[12])
 #define rem_builtins ((int (*) (p_tcl_bind_list, cmd_t *))global[13])
Index: eggdrop1.7/src/mod/notes.mod/notes.c
diff -u eggdrop1.7/src/mod/notes.mod/notes.c:1.42 eggdrop1.7/src/mod/notes.mod/notes.c:1.43
--- eggdrop1.7/src/mod/notes.mod/notes.c:1.42	Sat Oct 20 22:44:31 2001
+++ eggdrop1.7/src/mod/notes.mod/notes.c	Fri Oct 26 17:22:23 2001
@@ -5,7 +5,7 @@
  *   note cmds
  *   note ignores
  *
- * $Id: notes.c,v 1.42 2001/10/21 03:44:31 stdarg Exp $
+ * $Id: notes.c,v 1.43 2001/10/26 22:22:23 stdarg Exp $
  */
 /*
  * Copyright (C) 1997 Robey Pointer
@@ -1140,19 +1140,19 @@
 
 static int notes_irc_setup(char *mod)
 {
-  p_tcl_bind_list H_temp;
+  bind_table_t *table;
 
-  if ((H_temp = find_bind_table("join")))
-    add_builtins(H_temp, notes_join);
+  if ((table = find_bind_table2("join")))
+    add_builtins2(table, notes_join);
   return 0;
 }
 
 static int notes_server_setup(char *mod)
 {
-  p_tcl_bind_list H_temp;
+  bind_table_t *table;
 
-  if ((H_temp = find_bind_table("msg")))
-    add_builtins(H_temp, notes_msgs);
+  if ((table = find_bind_table2("msg")))
+    add_builtins2(table, notes_msgs);
   return 0;
 }
 
@@ -1165,15 +1165,15 @@
 
 static char *notes_close()
 {
-  p_tcl_bind_list H_temp;
+  bind_table_t *table;
 
   rem_tcl_ints(notes_ints);
   rem_tcl_strings(notes_strings);
   rem_tcl_commands(notes_tcls);
-  if ((H_temp = find_bind_table("msg")))
-    rem_builtins(H_temp, notes_msgs);
-  if ((H_temp = find_bind_table("join")))
-    rem_builtins(H_temp, notes_join);
+  if ((table = find_bind_table2("msg")))
+    rem_builtins2(table, notes_msgs);
+  if ((table = find_bind_table2("join")))
+    rem_builtins2(table, notes_join);
   if (BT_dcc) rem_builtins2(BT_dcc, notes_cmds);
   if (BT_chon) rem_builtins2(BT_chon, notes_chon);
   if (BT_away) rem_builtins2(BT_away, notes_away);
Index: eggdrop1.7/src/mod/transfer.mod/transfer.c
diff -u eggdrop1.7/src/mod/transfer.mod/transfer.c:1.51 eggdrop1.7/src/mod/transfer.mod/transfer.c:1.52
--- eggdrop1.7/src/mod/transfer.mod/transfer.c:1.51	Thu Oct 18 20:55:09 2001
+++ eggdrop1.7/src/mod/transfer.mod/transfer.c	Fri Oct 26 17:22:23 2001
@@ -1,7 +1,7 @@
 /*
  * transfer.c -- part of transfer.mod
  *
- * $Id: transfer.c,v 1.51 2001/10/19 01:55:09 tothwolf Exp $
+ * $Id: transfer.c,v 1.52 2001/10/26 22:22:23 stdarg Exp $
  */
 /*
  * Copyright (C) 1997 Robey Pointer
@@ -47,7 +47,7 @@
 
 static int copy_to_tmp = 1;	/* Copy files to /tmp before transmitting? */
 static int wait_dcc_xfer = 300;	/* Timeout time on DCC xfers */
-static p_tcl_bind_list H_rcvd, H_sent, H_lost, H_tout;
+static bind_table_t *BT_rcvd, *BT_sent, *BT_lost, *BT_tout;
 static int dcc_limit = 3;	/* Maximum number of simultaneous file
 				   downloads allowed */
 static int dcc_block = 1024;	/* Size of one dcc block */
@@ -198,63 +198,25 @@
   return ret;
 }
 
-
-/*
- *    Tcl sent, rcvd, tout and lost functions
- */
-
-static int builtin_sentrcvd STDVAR
-{
-  Function F = (Function) cd;
-
-  BADARGS(4, 4, " hand nick path");
-  CHECKVALIDITY(builtin_sentrcvd);
-  F(argv[1], argv[2], argv[3]);
-  return TCL_OK;
-}
-
-static int builtin_toutlost STDVAR
-{
-  Function F = (Function) cd;
-
-  BADARGS(6, 6, " hand nick path acked length");
-  CHECKVALIDITY(builtin_toutlost);
-  F(argv[1], argv[2], argv[3], argv[4], argv[5]);
-  return TCL_OK;
-}
-
 static void check_tcl_sentrcvd(struct userrec *u, char *nick, char *path,
-			       p_tcl_bind_list h)
+			       bind_table_t *table)
 {
   struct flag_record fr = {FR_GLOBAL | FR_CHAN | FR_ANYWH, 0, 0, 0, 0, 0};
   char *hand = u ? u->handle : "*";	/* u might be NULL. */
 
   get_user_flagrec(u, &fr, NULL);
-  Tcl_SetVar(interp, "_sr1", hand, 0);
-  Tcl_SetVar(interp, "_sr2", nick, 0);
-  Tcl_SetVar(interp, "_sr3", path, 0);
-  check_tcl_bind(h, hand, &fr, " $_sr1 $_sr2 $_sr3",
-		 MATCH_MASK | BIND_USE_ATTR | BIND_STACKABLE);
+  check_bind(table, hand, &fr, u, nick, path);
 }
 
 static void check_tcl_toutlost(struct userrec *u, char *nick, char *path,
 			       unsigned long acked, unsigned long length,
-                               p_tcl_bind_list h)
+				bind_table_t *table)
 {
   struct flag_record fr = {FR_GLOBAL | FR_CHAN | FR_ANYWH, 0, 0, 0, 0, 0};
   char *hand = u ? u->handle : "*";	/* u might be NULL. */
-  char s[15];
 
   get_user_flagrec(u, &fr, NULL);
-  Tcl_SetVar(interp, "_sr1", hand, 0);
-  Tcl_SetVar(interp, "_sr2", nick, 0);
-  Tcl_SetVar(interp, "_sr3", path, 0);
-  snprintf(s, sizeof s, "%lu", acked);
-  Tcl_SetVar(interp, "_sr4", s, 0);
-  snprintf(s, sizeof s, "%lu", length);
-  Tcl_SetVar(interp, "_sr5", s, 0);
-  check_tcl_bind(h, hand, &fr, " $_sr1 $_sr2 $_sr3 $_sr4 $_sr5",
-		 MATCH_MASK | BIND_USE_ATTR | BIND_STACKABLE);
+  check_bind(table, hand, &fr, u, nick, path, acked, length);
 }
 
 /*
@@ -782,7 +744,7 @@
 	f(dcc[idx].u.xfer->dir, dcc[idx].u.xfer->origname, hand);
       }
       stats_add_upload(u, dcc[idx].u.xfer->length);
-      check_tcl_sentrcvd(u, dcc[idx].nick, nfn, H_rcvd);
+      check_tcl_sentrcvd(u, dcc[idx].nick, nfn, BT_rcvd);
     }
     free(ofn);
     free(nfn);
@@ -995,7 +957,7 @@
       struct userrec *u = get_user_by_handle(userlist,
 					     dcc[idx].u.xfer->from);
       check_tcl_sentrcvd(u, dcc[idx].nick,
-			 dcc[idx].u.xfer->dir, H_sent);
+			 dcc[idx].u.xfer->dir, BT_sent);
       if (fs != NULL) {
 	Function f = fs->funcs[FILESYS_INCRGOTS];
 
@@ -1066,7 +1028,7 @@
     u = get_user_by_host(s);
     check_tcl_toutlost(u, dcc[idx].nick, dcc[idx].u.xfer->dir,
 		       dcc[idx].u.xfer->acked, dcc[idx].u.xfer->length,
-		       H_lost);
+		       BT_lost);
 
     putlog(LOG_FILES, "*", "Lost dcc get %s from %s!%s",
 	   dcc[idx].u.xfer->origname, dcc[idx].nick, dcc[idx].host);
@@ -1156,7 +1118,7 @@
     snprintf(xx, sizeof xx, "%s!%s", dcc[i].nick, dcc[i].host);
     u = get_user_by_host(xx);
     check_tcl_toutlost(u, dcc[i].nick, dcc[i].u.xfer->dir,
-		       dcc[i].u.xfer->acked, dcc[i].u.xfer->length, H_tout);
+		       dcc[i].u.xfer->acked, dcc[i].u.xfer->length, BT_tout);
 
     putlog(LOG_FILES, "*", "DCC timeout: GET %s (%s) at %lu/%lu",
 	   p ? p + 1 : dcc[i].u.xfer->origname, dcc[i].nick, dcc[i].status,
@@ -1862,10 +1824,10 @@
   while (fileq)
     deq_this(fileq);
   del_entry_type(&USERENTRY_FSTAT);
-  del_bind_table(H_rcvd);
-  del_bind_table(H_sent);
-  del_bind_table(H_lost);
-  del_bind_table(H_tout);
+  del_bind_table2(BT_rcvd);
+  del_bind_table2(BT_sent);
+  del_bind_table2(BT_lost);
+  del_bind_table2(BT_tout);
   if (BT_load) rem_builtins2(BT_load, transfer_load);
   /* Try to remove our CTCP bindings */
   if (BT_ctcp = find_bind_table2("ctcp"))
@@ -1905,15 +1867,10 @@
   /* 12 - 15 */
   (Function) wipe_tmp_filename,
   (Function) & DCC_GET,			/* struct dcc_table		*/
-  (Function) & H_rcvd,			/* p_tcl_bind_list		*/
-  (Function) & H_sent,			/* p_tcl_bind_list		*/
   /* 16 - 19 */
   (Function) & USERENTRY_FSTAT,		/* struct user_entry_type	*/
   (Function) & quiet_reject,		/* int				*/
   (Function) raw_dcc_resend,
-  (Function) & H_lost,			/* p_tcl_bind_list		*/
-  /* 20 - 23 */
-  (Function) & H_tout,			/* p_tcl_bind_list		*/
 };
 
 char *start(Function *global_funcs)
@@ -1934,10 +1891,10 @@
   add_tcl_ints(myints);
   server_transfer_setup(NULL);
   add_help_reference("transfer.help");
-  H_rcvd = add_bind_table("rcvd", HT_STACKABLE, builtin_sentrcvd);
-  H_sent = add_bind_table("sent", HT_STACKABLE, builtin_sentrcvd);
-  H_lost = add_bind_table("lost", HT_STACKABLE, builtin_toutlost);
-  H_tout = add_bind_table("tout", HT_STACKABLE, builtin_toutlost);
+  BT_rcvd = add_bind_table2("rcvd", 3, "Uss", MATCH_MASK, BIND_STACKABLE);
+  BT_sent = add_bind_table2("sent", 3, "Uss", MATCH_MASK, BIND_STACKABLE);
+  BT_lost = add_bind_table2("lost", 5, "Ussii", MATCH_MASK, BIND_STACKABLE);
+  BT_tout = add_bind_table2("tout", 5, "Ussii", MATCH_MASK, BIND_STACKABLE);
 
   USERENTRY_FSTAT.get = def_get;
   add_entry_type(&USERENTRY_FSTAT);
Index: eggdrop1.7/src/mod/transfer.mod/transfer.h
diff -u eggdrop1.7/src/mod/transfer.mod/transfer.h:1.13 eggdrop1.7/src/mod/transfer.mod/transfer.h:1.14
--- eggdrop1.7/src/mod/transfer.mod/transfer.h:1.13	Thu Oct 18 20:55:09 2001
+++ eggdrop1.7/src/mod/transfer.mod/transfer.h	Fri Oct 26 17:22:23 2001
@@ -1,7 +1,7 @@
 /*
  * transfer.h -- part of transfer.mod
  *
- * $Id: transfer.h,v 1.13 2001/10/19 01:55:09 tothwolf Exp $
+ * $Id: transfer.h,v 1.14 2001/10/26 22:22:23 stdarg Exp $
  */
 /*
  * Copyright (C) 1997 Robey Pointer
@@ -47,15 +47,10 @@
 /* 12 - 15 */
 #define wipe_tmp_filename(a,b) (((void (*) (char *,int))transfer_funcs[12])(a,b))
 #define DCC_GET (*(struct dcc_table *)(transfer_funcs[13]))
-#define H_rcvd (*(p_tcl_bind_list*)(transfer_funcs[14]))
-#define H_sent (*(p_tcl_bind_list*)(transfer_funcs[15]))
-/* 16 - 19 */
-#define USERENTRY_FSTAT (*(struct user_entry_type *)(transfer_funcs[16]))
-#define quiet_reject (*(int *)(transfer_funcs[17]))
-#define raw_dcc_resend(a,b,c,d,e) (((int (*) (char *,char *,char *,char *,char *))transfer_funcs[18])(a,b,c,d,e))
-#define H_lost (*(p_tcl_bind_list*)(transfer_funcs[19]))
-/* 20 - 23 */
-#define H_tout (*(p_tcl_bind_list*)(transfer_funcs[20]))
+#define USERENTRY_FSTAT (*(struct user_entry_type *)(transfer_funcs[14]))
+#define quiet_reject (*(int *)(transfer_funcs[15]))
+/* 16 */
+#define raw_dcc_resend(a,b,c,d,e) (((int (*) (char *,char *,char *,char *,char *))transfer_funcs[16])(a,b,c,d,e))
 
 #else	/* MAKING_TRANSFER */
 
Index: eggdrop1.7/src/modules.c
diff -u eggdrop1.7/src/modules.c:1.82 eggdrop1.7/src/modules.c:1.83
--- eggdrop1.7/src/modules.c:1.82	Sun Oct 21 20:49:24 2001
+++ eggdrop1.7/src/modules.c	Fri Oct 26 17:22:22 2001
@@ -4,7 +4,7 @@
  * 
  * by Darrin Smith (beldin at light.iinet.net.au)
  * 
- * $Id: modules.c,v 1.82 2001/10/22 01:49:24 stdarg Exp $
+ * $Id: modules.c,v 1.83 2001/10/26 22:22:22 stdarg Exp $
  */
 /* 
  * Copyright (C) 1997  Robey Pointer
@@ -152,13 +152,13 @@
   (Function) module_depend,
   (Function) module_undepend,
   /* 8 - 11 */
-  (Function) add_bind_table,
-  (Function) del_bind_table,
-  (Function) find_bind_table,
-  (Function) check_tcl_bind,
+  (Function) 0,
+  (Function) 0,
+  (Function) 0,
+  (Function) 0,
   /* 12 - 15 */
-  (Function) add_builtins,
-  (Function) rem_builtins,
+  (Function) 0,
+  (Function) 0,
   (Function) add_tcl_commands,
   (Function) rem_tcl_commands,
   /* 16 - 19 */
Index: eggdrop1.7/src/tcl.c
diff -u eggdrop1.7/src/tcl.c:1.52 eggdrop1.7/src/tcl.c:1.53
--- eggdrop1.7/src/tcl.c:1.52	Wed Oct 24 05:08:03 2001
+++ eggdrop1.7/src/tcl.c	Fri Oct 26 17:22:22 2001
@@ -4,7 +4,7 @@
  *   Tcl initialization
  *   getting and setting Tcl/eggdrop variables
  *
- * $Id: tcl.c,v 1.52 2001/10/24 10:08:03 stdarg Exp $
+ * $Id: tcl.c,v 1.53 2001/10/26 22:22:22 stdarg Exp $
  */
 /*
  * Copyright (C) 1997 Robey Pointer
@@ -63,7 +63,6 @@
 		sort_users, tands, resolve_timeout, userfile_perm,
 		default_uflags, strict_host;
 extern struct dcc_t	*dcc;
-extern tcl_timer_t	*timer, *utimer;
 
 int	    protect_readonly = 0;	/* turn on/off readonly protection */
 char	    whois_fields[1025] = "";	/* fields to display in a .whois */
Index: eggdrop1.7/src/tcldcc.c
diff -u eggdrop1.7/src/tcldcc.c:1.39 eggdrop1.7/src/tcldcc.c:1.40
--- eggdrop1.7/src/tcldcc.c:1.39	Wed Oct 24 05:08:03 2001
+++ eggdrop1.7/src/tcldcc.c	Fri Oct 26 17:22:22 2001
@@ -2,7 +2,7 @@
  * tcldcc.c -- handles:
  *   Tcl stubs for the dcc commands
  *
- * $Id: tcldcc.c,v 1.39 2001/10/24 10:08:03 stdarg Exp $
+ * $Id: tcldcc.c,v 1.40 2001/10/26 22:22:22 stdarg Exp $
  */
 /*
  * Copyright (C) 1997 Robey Pointer
@@ -30,8 +30,6 @@
 #include "script.h"
 
 extern Tcl_Interp	*interp;
-extern tcl_timer_t	*timer,
-			*utimer;
 extern struct dcc_t	*dcc;
 extern int		 dcc_total, backgrd, parties, make_userfile,
 			 do_restart, remote_boots, max_dcc;
Index: eggdrop1.7/src/tclegg.h
diff -u eggdrop1.7/src/tclegg.h:1.14 eggdrop1.7/src/tclegg.h:1.15
--- eggdrop1.7/src/tclegg.h:1.14	Tue Oct 16 22:28:16 2001
+++ eggdrop1.7/src/tclegg.h	Fri Oct 26 17:22:22 2001
@@ -2,7 +2,7 @@
  * tclegg.h
  *   stuff used by tcl.c and tclhash.c
  *
- * $Id: tclegg.h,v 1.14 2001/10/17 03:28:16 stdarg Exp $
+ * $Id: tclegg.h,v 1.15 2001/10/26 22:22:22 stdarg Exp $
  */
 /*
  * Copyright (C) 1997 Robey Pointer
@@ -56,17 +56,6 @@
 #define BIND_EXEC_LOG   4	/* Proc returned 1 -> wants to be logged */
 #define BIND_EXEC_BRK   5	/* Proc returned BREAK (quit) */
 
-/* Extra commands are stored in Tcl hash tables (one hash table for each type
- * of command: msg, dcc, etc)
- */
-typedef struct timer_str {
-  struct timer_str	*next;
-  unsigned int		 mins;	/* Time to elapse			*/
-  char			*cmd;	/* Command linked to			*/
-  unsigned long		 id;	/* Used to remove timers		*/
-} tcl_timer_t;
-
-
 /* Used for stub functions:
  */
 
@@ -116,52 +105,5 @@
 void rem_tcl_coups(tcl_coups *);
 void add_tcl_ints(tcl_ints *);
 void rem_tcl_ints(tcl_ints *);
-
-/* From Tcl's tclUnixInit.c */
-/* The following table is used to map from Unix locale strings to
- * encoding files.
- */
-typedef struct LocaleTable {
-  const char *lang;
-  const char *encoding;
-} LocaleTable;
-
-static const LocaleTable localeTable[] = {
-  {"ja_JP.SJIS",	"shiftjis"},
-  {"ja_JP.EUC",		"euc-jp"},
-  {"ja_JP.JIS",		"iso2022-jp"},
-  {"ja_JP.mscode",	"shiftjis"},
-  {"ja_JP.ujis",	"euc-jp"},
-  {"ja_JP",		"euc-jp"},
-  {"Ja_JP",		"shiftjis"},
-  {"Jp_JP",		"shiftjis"},
-  {"japan",		"euc-jp"},
-#ifdef hpux
-  {"japanese",		"shiftjis"},
-  {"ja",		"shiftjis"},
-#else
-  {"japanese",		"euc-jp"},
-  {"ja",		"euc-jp"},
-#endif
-  {"japanese.sjis",	"shiftjis"},
-  {"japanese.euc",	"euc-jp"},
-  {"japanese-sjis",	"shiftjis"},
-  {"japanese-ujis",	"euc-jp"},
-
-  {"ko",		"euc-kr"},
-  {"ko_KR",		"euc-kr"},
-  {"ko_KR.EUC",		"euc-kr"},
-  {"ko_KR.euc",		"euc-kr"},
-  {"ko_KR.eucKR",	"euc-kr"},
-  {"korean",		"euc-kr"},
-
-  {"ru",		"iso8859-5"},
-  {"ru_RU",		"iso8859-5"},
-  {"ru_SU",		"iso8859-5"},
-
-  {"zh",		"cp936"},
-
-  {NULL,		NULL}
-};
 
 #endif				/* _EGG_TCLEGG_H */
Index: eggdrop1.7/src/tclhash.c
diff -u eggdrop1.7/src/tclhash.c:1.55 eggdrop1.7/src/tclhash.c:1.56
--- eggdrop1.7/src/tclhash.c:1.55	Wed Oct 24 05:08:03 2001
+++ eggdrop1.7/src/tclhash.c	Fri Oct 26 17:22:22 2001
@@ -7,7 +7,7 @@
  *   (non-Tcl) procedure lookups for msg/dcc/file commands
  *   (Tcl) binding internal procedures to msg/dcc/file commands
  *
- * $Id: tclhash.c,v 1.55 2001/10/24 10:08:03 stdarg Exp $
+ * $Id: tclhash.c,v 1.56 2001/10/26 22:22:22 stdarg Exp $
  */
 /*
  * Copyright (C) 1997 Robey Pointer
@@ -66,9 +66,6 @@
 
 p_tcl_bind_list		bind_table_list;
 
-static int builtin_5int();
-static int builtin_charidx();
-
 /* Delete trigger/command.
  */
 static inline void tcl_cmd_delete(tcl_cmd_t *tc)
@@ -183,11 +180,11 @@
 	BT_bcst = add_bind_table2("bcst", 3, "sis", MATCH_MASK, BIND_STACKABLE);
 	BT_note = add_bind_table2("note", 3 , "sss", MATCH_EXACT, 0);
 	BT_bot = add_bind_table2("bot", 3, "sss", MATCH_EXACT, 0);
-	BT_chon = add_bind_table2("chon", 2, "si", MATCH_MASK, BIND_USE_ATTR | BIND_STACKABLE | BIND_WANTRET);
-	BT_chof = add_bind_table2("chof", 2, "si", MATCH_MASK, BIND_USE_ATTR | BIND_STACKABLE | BIND_WANTRET);
+	BT_chon = add_bind_table2("chon", 2, "si", MATCH_MASK, BIND_USE_ATTR | BIND_STACKABLE);
+	BT_chof = add_bind_table2("chof", 2, "si", MATCH_MASK, BIND_USE_ATTR | BIND_STACKABLE);
 	BT_chpt = add_bind_table2("chpt", 4, "ssii", MATCH_MASK, BIND_STACKABLE);
 	BT_chjn = add_bind_table2("chjn", 6, "ssisis", MATCH_MASK, BIND_STACKABLE);
-	BT_filt = add_bind_table2("filt", 2, "is", MATCH_MASK, BIND_USE_ATTR | BIND_STACKABLE | BIND_WANTRET | BIND_ALTER_ARGS);
+	BT_filt = add_bind_table2("filt", 2, "is", MATCH_MASK, BIND_USE_ATTR | BIND_STACKABLE);
 }
 
 void kill_bind2(void)
@@ -580,16 +577,6 @@
   return 1;
 }
 
-static int builtin_5int STDVAR
-{
-  Function F = (Function) cd;
-
-  BADARGS(6, 6, " min hrs dom mon year");
-  CHECKVALIDITY(builtin_5int);
-  F(atoi(argv[1]), atoi(argv[2]), atoi(argv[3]), atoi(argv[4]), atoi(argv[5]));
-  return TCL_OK;
-}
-
 int findanyidx(register int z)
 {
   register int j;
@@ -600,56 +587,6 @@
   return -1;
 }
 
-static int builtin_charidx STDVAR
-{
-  Function F = (Function) cd;
-  int idx;
-
-  BADARGS(3, 3, " handle idx");
-  CHECKVALIDITY(builtin_charidx);
-  idx = findanyidx(atoi(argv[2]));
-  if (idx < 0) {
-    Tcl_AppendResult(irp, "invalid idx", NULL);
-    return TCL_ERROR;
-  }
-  Tcl_AppendResult(irp, int_to_base10(F(argv[1], idx)), NULL);
-  return TCL_OK;
-}
-
-/* trigger (execute) a proc */
-static int trigger_bind(const char *proc, const char *param)
-{
-  int x;
-
-  /* We now try to debug the Tcl_VarEval() call below by remembering both
-   * the called proc name and it's parameters. This should render us a bit
-   * less helpless when we see context dumps.
-   */
-  {
-    const char *msg = "TCL proc: %s, param: %s";
-    char *buf;
-
-    Context;
-    buf = malloc(strlen(msg) + (proc ? strlen(proc) : 6)
-		  + (param ? strlen(param) : 6) + 1);
-    sprintf(buf, msg, proc ? proc : "<null>", param ? param : "<null>");
-    ContextNote(buf);
-    free(buf);
-  }
-  x = Tcl_VarEval(interp, proc, param, NULL);
-  Context;
-  if (x == TCL_ERROR) {
-    if (strlen(interp->result) > 400)
-      interp->result[400] = 0;
-    putlog(LOG_MISC, "*", "TCL error [%s]: %s", proc, interp->result);
-    return BIND_EXECUTED;
-  } else {
-    if (!strcmp(interp->result, "break"))
-      return BIND_EXEC_BRK;
-    return (atoi(interp->result) > 0) ? BIND_EXEC_LOG : BIND_EXECUTED;
-  }
-}
-
 int check_bind(bind_table_t *table, const char *match, struct flag_record *_flags, ...)
 {
 	int *al; /* Argument list */
@@ -733,137 +670,6 @@
 	return(r);
 }
 
-int check_tcl_bind(tcl_bind_list_t *tl, const char *match,
-		   struct flag_record *atr, const char *param, int match_type)
-{
-  tcl_bind_mask_t	*tm, *tm_last = NULL, *tm_p = NULL;
-  int			 cnt = 0;
-  char			*proc = NULL, *fullmatch = NULL;
-  tcl_cmd_t		*tc, *htc = NULL;
-  int			 finish = 0, atrok, x, ok;
-
-  for (tm = tl->first; tm && !finish; tm_last = tm, tm = tm->next) {
-    if (tm->flags & TBM_DELETED)
-      continue;
-    /* Find out whether this bind matches the mask or provides
-       the the requested atcributes, depending on the specified
-       requirements. */
-    switch (match_type & 0x03) {
-    case MATCH_PARTIAL:
-      ok = !strncasecmp(match, tm->mask, strlen(match));
-      break;
-    case MATCH_EXACT:
-      ok = !strcasecmp(match, tm->mask);
-      break;
-    case MATCH_CASE:
-      ok = !strcmp(match, tm->mask);
-      break;
-    case MATCH_MASK:
-      ok = wild_match_per((unsigned char *) tm->mask, (unsigned char *) match);
-      break;
-    default:
-      ok = 0;
-    }
-    if (!ok)
-      continue;	/* This bind does not match. */
-
-    if (match_type & BIND_STACKABLE) {
-      /* Could be multiple commands/triggers. */
-      for (tc = tm->first; tc; tc = tc->next) {
-	if (match_type & BIND_USE_ATTR) {
-	  /* Check whether the provided flags suffice for
-	     this command/trigger. */
-	  if (match_type & BIND_HAS_BUILTINS)
-	    atrok = flagrec_ok(&tc->flags, atr);
-	  else
-	    atrok = flagrec_eq(&tc->flags, atr);
-	} else
-	  atrok = 1;
-
-	if (atrok) {
-	  cnt++;
-	  tc->hits++;
-	  tm_p = tm_last;
-	  Tcl_SetVar(interp, "lastbind", (char *) tm->mask, TCL_GLOBAL_ONLY);
-	  x = trigger_bind(tc->func_name, param);
-	  if (match_type & BIND_ALTER_ARGS) {
-	    if (interp->result == NULL || !interp->result[0])
-	      return x;
-	    /* This is such an amazingly ugly hack: */
-	    Tcl_SetVar(interp, "_a", (char *) interp->result, 0);
-	    /* Note: If someone knows what the above tries to
-	       achieve, please tell me! (Fabian, 2000-10-14) */
-	  } else if ((match_type & BIND_WANTRET) && x == BIND_EXEC_LOG)
-	    return x;
-	}
-      }
-
-      /* Apart from MATCH_MASK, currently no match type allows us to match
-         against more than one bind. So if this isn't MATCH_MASK then exit
-	 the loop now. */
-      /* This will suffice until we have stackable partials. */
-      if ((match_type & 3) != MATCH_MASK)
-	finish = 1;
-    } else {
-      /* Search for valid entry. */
-      for (tc = tm->first; tc; tc = tc->next)
-	if (!(tc->attributes & TC_DELETED))
-	  break;
-      if (tc) {
-        /* Check whether the provided flags suffice for this
-           command/trigger. */
-        if (match_type & BIND_USE_ATTR) {
-	  if (match_type & BIND_HAS_BUILTINS)
-	    atrok = flagrec_ok(&tc->flags, atr);
-	  else
-	    atrok = flagrec_eq(&tc->flags, atr);
-	} else
-	  atrok = 1;
-
-	if (atrok) {
-	  cnt++;
-	  /* Remember information about this bind and its only
-	     command/trigger. */
-	  proc = tc->func_name;
-	  fullmatch = tm->mask;
-	  htc = tc;
-	  tm_p = tm_last;
-
-	  /* Either this is a non-partial match, which means we
-	     only want to execute _one_ bind ... */
-	  if ((match_type & 3) != MATCH_PARTIAL ||
-	      /* ... or this is happens to be an exact match. */
-	      !strcasecmp(match, tm->mask))
-	    cnt = finish = 1;
-	}
-      }
-    }
-  }
-
-  if (!cnt)
-    return BIND_NOMATCH;
-  if ((match_type & 0x03) == MATCH_MASK ||
-      (match_type & 0x03) == MATCH_CASE)
-    return BIND_EXECUTED;
-
-  /* Now that we have found at least one bind, we can update the
-     preferred entries information. */
-  if (htc)
-    htc->hits++;
-  if (tm_p) {
-    /* Move mask to front of bind's mask list. */
-    tm = tm_p->next;
-    tm_p->next = tm->next;		/* Unlink mask from list.	*/
-    tm->next = tl->first;		/* Readd mask to front of list.	*/
-    tl->first = tm;
-  }
-
-  if (cnt > 1)
-    return BIND_AMBIGUOUS;
-  Tcl_SetVar(interp, "lastbind", (char *) fullmatch, TCL_GLOBAL_ONLY);
-  return trigger_bind(proc, param);
-}
-
 /* Check for tcl-bound dcc command, return 1 if found
  * dcc: proc-name <handle> <sock> <args...>
  */
@@ -1003,78 +809,6 @@
   check_bind(BT_away, bot, NULL, bot, idx, msg);
 }
 
-void tell_binds(int idx, char *par)
-{
-  tcl_bind_list_t	*tl, *tl_kind;
-  tcl_bind_mask_t	*tm;
-  int			 fnd = 0, showall = 0, patmatc = 0;
-  tcl_cmd_t		*tc;
-  char			*name, *proc, *s, flg[100];
-
-  if (par[0])
-    name = newsplit(&par);
-  else
-    name = NULL;
-  if (par[0])
-    s = newsplit(&par);
-  else
-    s = NULL;
-
-  if (name)
-    tl_kind = find_bind_table(name);
-  else
-    tl_kind = NULL;
-
-  if ((name && name[0] && !strcasecmp(name, "all")) || (s && s[0] && !strcasecmp(s, "all")))
-    showall = 1;
-  if (tl_kind == NULL && name && name[0] && strcasecmp(name, "all"))
-    patmatc = 1;
-
-  dprintf(idx, _("Command bindings:\n"));
-  dprintf(idx, "  TYPE FLGS     COMMAND              HITS BINDING (TCL)\n");
-
-  for (tl = tl_kind ? tl_kind : bind_table_list; tl;
-       tl = tl_kind ? 0 : tl->next) {
-    if (tl->flags & HT_DELETED)
-      continue;
-    for (tm = tl->first; tm; tm = tm->next) {
-      if (tm->flags & TBM_DELETED)
-	continue;
-      for (tc = tm->first; tc; tc = tc->next) {
-	if (tc->attributes & TC_DELETED)
-	  continue;
-	proc = tc->func_name;
-	build_flags(flg, &(tc->flags), NULL);
-	if (showall || proc[0] != '*') {
-	  int	ok = 0;
-
-          if (patmatc == 1) {
-            if (wild_match(name, tl->name) ||
-                wild_match(name, tm->mask) ||
-                wild_match(name, tc->func_name))
-	      ok = 1;
-          } else
-	    ok = 1;
-
-	  if (ok) {
-            dprintf(idx, "  %-4s %-8s %-20s %4d %s\n", tl->name, flg, tm->mask,
-		    tc->hits, tc->func_name);
-            fnd = 1;
-          }
-        }
-      }
-    }
-  }
-  if (!fnd) {
-    if (patmatc)
-      dprintf(idx, "No command bindings found that match %s\n", name);
-    else if (tl_kind)
-      dprintf(idx, "No command bindings for type: %s.\n", name);
-    else
-      dprintf(idx, "No command bindings exist.\n");
-  }
-}
-
 void add_builtins2(bind_table_t *table, cmd_t *cmds)
 {
 	char name[50];
@@ -1085,23 +819,6 @@
 	}
 }
 
-/* Bring the default msg/dcc/fil commands into the Tcl interpreter */
-void add_builtins(tcl_bind_list_t *tl, cmd_t *cc)
-{
-  int	k, i;
-  char	p[1024], *l;
-
-  for (i = 0; cc[i].name; i++) {
-    snprintf(p, sizeof p, "*%s:%s", tl->name,
-		   cc[i].funcname ? cc[i].funcname : cc[i].name);
-    l = (char *) malloc(Tcl_ScanElement(p, &k));
-    Tcl_ConvertElement(p, l, k | TCL_DONT_USE_BRACES);
-    Tcl_CreateCommand(interp, p, tl->func, (ClientData) cc[i].func, NULL);
-    bind_bind_entry(tl, cc[i].flags, cc[i].name, l);
-    free(l);
-  }
-}
-
 void rem_builtins2(bind_table_t *table, cmd_t *cmds)
 {
 	char name[50];
@@ -1110,21 +827,4 @@
 		sprintf(name, "*%s:%s", table->name, cmds->funcname ? cmds->funcname : cmds->name);
 		del_bind_entry(table, cmds->flags, cmds->name, name);
 	}
-}
-
-/* Remove the default msg/dcc/fil commands from the Tcl interpreter */
-void rem_builtins(tcl_bind_list_t *table, cmd_t *cc)
-{
-  int	k, i;
-  char	p[1024], *l;
-
-  for (i = 0; cc[i].name; i++) {
-    snprintf(p, sizeof p, "*%s:%s", table->name,
-		   cc[i].funcname ? cc[i].funcname : cc[i].name);
-    l = (char *) malloc(Tcl_ScanElement(p, &k));
-    Tcl_ConvertElement(p, l, k | TCL_DONT_USE_BRACES);
-    Tcl_DeleteCommand(interp, p);
-    unbind_bind_entry(table, cc[i].flags, cc[i].name, l);
-    free(l);
-  }
 }
Index: eggdrop1.7/src/tclhash.h
diff -u eggdrop1.7/src/tclhash.h:1.24 eggdrop1.7/src/tclhash.h:1.25
--- eggdrop1.7/src/tclhash.h:1.24	Sat Oct 20 22:44:30 2001
+++ eggdrop1.7/src/tclhash.h	Fri Oct 26 17:22:22 2001
@@ -1,7 +1,7 @@
 /*
  * tclhash.h
  *
- * $Id: tclhash.h,v 1.24 2001/10/21 03:44:30 stdarg Exp $
+ * $Id: tclhash.h,v 1.25 2001/10/26 22:22:22 stdarg Exp $
  */
 /*
  * Copyright (C) 1997 Robey Pointer
@@ -140,7 +140,6 @@
 
 tcl_bind_list_t *find_bind_table(const char *nme);
 
-int check_tcl_bind(tcl_bind_list_t *, const char *, struct flag_record *, const char *, int);
 void check_tcl_dcc(const char *, int, const char *);
 void check_tcl_chjn(const char *, const char *, int, char, int, const char *);
 void check_tcl_chpt(const char *, const char *, int, int);
----------------------- End of diff -----------------------



More information about the Changes mailing list