diff -Bur emech-2.8.1/src/cfgfile.c epatch/src/cfgfile.c --- emech-2.8.1/src/cfgfile.c Sun Apr 1 12:26:12 2001 +++ epatch/src/cfgfile.c Thu May 10 21:04:09 2001 @@ -692,47 +692,7 @@ void cfg_alias(char *args) { - char *org,*new,*pt; - int i; - - org = get_token(&args,TOC); - if ((new = get_token(&args,TOC)) == NULL) - return; - - pt = new; - while(*pt) - { - *pt = toupper(*pt); - pt++; - } - - for(i=0;mcmd[i].name;i++) - { - if (!Strcasecmp(mcmd[i].name,new)) - { - printf("init: Alias replacing original command (ignored)\n"); - return; - } - if (!Strcasecmp(mcmd[i].alias,new)) - { - printf("init: Alias %s already exists (ignored)\n",new); - return; - } - } - - i = 0; - while(mcmd[i].name) - { - if (!Strcasecmp(mcmd[i].name,org)) - { - if (mcmd[i].alias) - MyFree(&mcmd[i].alias); - set_mallocdoer(cfg_alias); - mstrcpy(&mcmd[i].alias,new); - return; - } - i++; - } + add_alias(NULL, args, 0); } #endif /* ALIASES */ diff -Bur emech-2.8.1/src/commands.c epatch/src/commands.c --- emech-2.8.1/src/commands.c Sun Apr 1 12:26:12 2001 +++ epatch/src/commands.c Thu May 10 21:04:20 2001 @@ -1901,3 +1901,10 @@ send_to_user(from,"No longer kicking on %s",User->parm.kicksay); remove_user(User); } + +#ifdef ALIASES +void do_alias(char *from, char *to, char *rest, int cmdlevel) +{ + add_alias(from, rest, 1); +} +#endif diff -Bur emech-2.8.1/src/function.c epatch/src/function.c --- emech-2.8.1/src/function.c Sun Apr 1 12:26:12 2001 +++ epatch/src/function.c Thu May 10 21:13:53 2001 @@ -20,6 +20,8 @@ */ #include "config.h" +#define TOC " =\t\r\n" + static char uhbuf[NUHLEN]; /* for find_userhost() */ static char channelbuf[MSGLEN]; /* for get_channel() and get_channel2() */ static char timebuf[MSGLEN]; @@ -1206,3 +1208,58 @@ *pp = 0; return(arg); } + +#ifdef ALIASES +void add_alias(char *from, char *data, int type) +{ + char *org,*new,*pt; + int i; + + org = get_token(&data,TOC); + if ((new = get_token(&data,TOC)) == NULL) + return; + + pt = new; + while(*pt) + { + *pt = toupper(*pt); + pt++; + } + + for(i=0;mcmd[i].name;i++) + { + if (!Strcasecmp(mcmd[i].name,new)) + { + if (type) + send_to_user(from,"Alias replacing original command (ignored)"); + else + printf("init: Alias replacing original command (ignored)\n"); + return; + } + if (!Strcasecmp(mcmd[i].alias,new)) + { + if (type) + send_to_user(from,"Alias %s already exists (ignored)\n",new); + else + printf("init: Alias %s already exists (ignored)\n",new); + return; + } + } + + i = 0; + while(mcmd[i].name) + { + if (!Strcasecmp(mcmd[i].name,org)) + { + if (mcmd[i].alias) + MyFree(&mcmd[i].alias); + set_mallocdoer(add_alias); + mstrcpy(&mcmd[i].alias,new); + if (type) send_to_user(from,"Alias %s added.\n",new); + return; + } + i++; + } + if (type) send_to_user(from,"Could not find function %s.\n",org); +} +#endif diff -Bur emech-2.8.1/src/gencmd.c epatch/src/gencmd.c --- emech-2.8.1/src/gencmd.c Sun Apr 1 12:26:12 2001 +++ epatch/src/gencmd.c Thu May 10 21:05:09 2001 @@ -68,6 +68,9 @@ { 0, "VER", "do_vers", 20 | CC | PASS }, { 0, "WHOM", "do_whom", 20 | CC | PASS | DCC }, +#ifdef ALIASES + { 0, "ALIAS", "do_alias", 100 | CC | PASS }, +#endif { 0, "BAN", "do_ban", 40 | CC | PASS }, { 0, "BANLIST", "do_banlist", 40 | CC | PASS | DCC }, { 0, "CCHAN", "do_cchan", 40 | CC | PASS }, diff -Bur emech-2.8.1/src/h.h epatch/src/h.h --- emech-2.8.1/src/h.h Sun Apr 1 12:26:12 2001 +++ epatch/src/h.h Thu May 10 21:06:19 2001 @@ -226,6 +226,7 @@ int verified(char *userhost); int write_levelfile(void); int write_seenlist(aSeen **, char *); +void add_alias(char *, char *, int); void *MyMalloc(int); void Link_addbot(aBotLink *, char *); void Link_needinvite(aBotLink *, char *); @@ -269,6 +270,7 @@ void do_access(char *, char *, char *, int); void do_add(char *, char *, char *, int); void do_addserver(char *, char *, char *, int); +void do_alias(char *, char *, char *, int); void do_auth(char *, char *, char *, int); void do_unverify(char *, char *, char *, int); void do_away(char *, char *, char *, int);