Thread: [IRC-Dev CVS] Module ircdh: Change commited ircdh/ircd IPcheck.c,1.4,1.5 channel.c,1.4,1.5 hash.c,1.
Brought to you by:
zolty
From: Zolty <zo...@us...> - 2002-08-22 20:27:17
|
Update of /cvsroot/irc-dev/ircdh/ircd In directory usw-pr-cvs1:/tmp/cvs-serv8672/ircdh/ircd Modified Files: IPcheck.c channel.c hash.c ircd_string.c match.c querycmds.c s_bdd.c s_debug.c s_err.c s_user.c support.c table_gen.c version.c.SH Log Message: 2002-08-22 Toni Garcia <zo...@ir...> 1.0.alpha9 * En los parches anteriores, hice un cambio: - El modo +R lo puede poner CUALQUIERA. * Sincronizacion Hispano u2.10.H.05.16 al u2.10.H.04.24. * ircd/querycmds.c: En el /VERSION, hago que se muestre el version hispano equivalente. Solo es provisional, se quitara en el futuro, junto con los mensajes de parches de ESNET-Hispano. * include/patchlevel.h: Limpieza en el codigo. Y renombramos el ircd como "IRC-Dev 1.0.alpha9". Index: IPcheck.c =================================================================== RCS file: /cvsroot/irc-dev/ircdh/ircd/IPcheck.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- IPcheck.c 21 Aug 2002 17:59:40 -0000 1.4 +++ IPcheck.c 22 Aug 2002 20:27:13 -0000 1.5 @@ -27,17 +27,17 @@ #include "client.h" #endif #include "ircd.h" -#include "numnicks.h" /* NumNick, NumServ (GODMODE) */ +#include "numnicks.h" /* NumNick, NumServ (GODMODE) */ #if 0 #include "ircd_alloc.h" #endif -#include "s_bsd.h" /* SetIPChecked */ -#include "s_debug.h" /* Debug */ -#include "s_user.h" /* TARGET_DELAY */ +#include "s_bsd.h" /* SetIPChecked */ +#include "s_debug.h" /* Debug */ +#include "s_user.h" /* TARGET_DELAY */ #include "send.h" #include <assert.h> -#include <stdio.h> /* NULL ... bleah */ +#include <stdio.h> /* NULL ... bleah */ /* Provisional */ #include "h.h" Index: channel.c =================================================================== RCS file: /cvsroot/irc-dev/ircdh/ircd/channel.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- channel.c 21 Aug 2002 17:59:40 -0000 1.4 +++ channel.c 22 Aug 2002 20:27:13 -0000 1.5 @@ -546,10 +546,12 @@ { Reg1 Link *lp; + if (IsChannelService(cptr) #if defined(BDD) - if (IsServicesBot(cptr)) - return 0; /* siempre pueden */ + || (IsServicesBot(cptr)) #endif + ) + return 0; /* siempre pueden */ lp = IsMember(cptr, chptr); @@ -2646,7 +2648,8 @@ * Rebuild list of channels joined to be the actual result of the * JOIN. Note that "JOIN 0" is the destructive problem. */ - for (name = ircd_strtok(&p, parv[1], ","); name; name = ircd_strtok(&p, NULL, ",")) + for (name = ircd_strtok(&p, parv[1], ","); name; + name = ircd_strtok(&p, NULL, ",")) { size_t len; if (MyConnect(sptr)) @@ -2914,7 +2917,8 @@ if (*jbuf) { /* check for channels that need TS's */ p = NULL; - for (name = ircd_strtok(&p, jbuf, ","); name; name = ircd_strtok(&p, NULL, ",")) + for (name = ircd_strtok(&p, jbuf, ","); name; + name = ircd_strtok(&p, NULL, ",")) { chptr = get_channel(sptr, name, !CREATE); if (chptr && chptr->mode.mode & MODE_SENDTS) @@ -2956,7 +2960,8 @@ if (*mbuf) { /* ok, send along modes for creation events to P9 */ p = NULL; - for (name = ircd_strtok(&p, mbuf, ","); name; name = ircd_strtok(&p, NULL, ",")) + for (name = ircd_strtok(&p, mbuf, ","); name; + name = ircd_strtok(&p, NULL, ",")) { chptr = get_channel(sptr, name, !CREATE); sendto_lowprot_butone(cptr, 9, ":%s MODE %s +o %s " TIME_T_FMT, @@ -3041,7 +3046,8 @@ *cbuf = '\0'; /* Start with empty buffer */ /* For each channel in the comma seperated list: */ - for (name = ircd_strtok(&p, parv[1], ","); name; name = ircd_strtok(&p, NULL, ",")) + for (name = ircd_strtok(&p, parv[1], ","); name; + name = ircd_strtok(&p, NULL, ",")) { badop = 0; /* Default is to accept the op */ if ((chptr = FindChannel(name))) @@ -3127,7 +3133,8 @@ is not needed after all are 2.10 */ sendto_lowprot_butone(cptr, 9, ":%s JOIN %s", parv[0], cbuf); p = NULL; - for (name = ircd_strtok(&p, cbuf, ","); name; name = ircd_strtok(&p, NULL, ",")) + for (name = ircd_strtok(&p, cbuf, ","); name; + name = ircd_strtok(&p, NULL, ",")) sendto_lowprot_butone(cptr, 9, ":%s MODE %s +o %s " TIME_T_FMT, sptr->user->server->name, name, parv[0], chanTS); #endif @@ -4449,9 +4456,8 @@ if (is_silenced(sptr, acptr)) { - sendto_one(sptr, - ":%s NOTICE %s :You can't talk to %s. (S)he is silencing you", me.name, - sptr->name, acptr->name); + sendto_one(sptr, err_str(ERR_ISSILENCING), me.name, sptr->name, + acptr->name); return 0; } Index: hash.c =================================================================== RCS file: /cvsroot/irc-dev/ircdh/ircd/hash.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- hash.c 21 Aug 2002 17:59:40 -0000 1.4 +++ hash.c 22 Aug 2002 20:27:13 -0000 1.5 @@ -498,7 +498,8 @@ strncpy(temp, nicks, 512); temp[512] = '\000'; p = NULL; - for (one = ircd_strtok(&p, temp, ","); one; one = ircd_strtok(&p, NULL, ",")) + for (one = ircd_strtok(&p, temp, ","); one; + one = ircd_strtok(&p, NULL, ",")) { if (!*one) continue; Index: ircd_string.c =================================================================== RCS file: /cvsroot/irc-dev/ircdh/ircd/ircd_string.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ircd_string.c 21 Aug 2002 17:59:40 -0000 1.1 +++ ircd_string.c 22 Aug 2002 20:27:13 -0000 1.2 @@ -41,27 +41,27 @@ */ char *ircd_strtok(char **save, char *str, char *fs) { - char *pos = *save; /* keep last position across calls */ + char *pos = *save; /* keep last position across calls */ char *tmp; if (str) - pos = str; /* new string scan */ + pos = str; /* new string scan */ while (pos && *pos && strchr(fs, *pos) != NULL) - pos++; /* skip leading separators */ + pos++; /* skip leading separators */ if (!pos || !*pos) - return (pos = *save = NULL); /* string contains only sep's */ + return (pos = *save = NULL); /* string contains only sep's */ - tmp = pos; /* now, keep position of the token */ + tmp = pos; /* now, keep position of the token */ while (*pos && strchr(fs, *pos) == NULL) - pos++; /* skip content of the token */ + pos++; /* skip content of the token */ if (*pos) - *pos++ = '\0'; /* remove first sep after the token */ + *pos++ = '\0'; /* remove first sep after the token */ else - pos = NULL; /* end of string */ + pos = NULL; /* end of string */ *save = pos; return (tmp); @@ -91,22 +91,22 @@ { p2 = NULL; for (t = ircd_strtok(&p2, cbuf, ","); t; t = ircd_strtok(&p2, NULL, ",")) - if (0 == ircd_strcmp(s, t)) - break; - else if (p2) - p2[-1] = ','; + if (0 == ircd_strcmp(s, t)) + break; + else if (p2) + p2[-1] = ','; } else t = NULL; if (!t) { if (l) - *(cp - 1) = ','; + *(cp - 1) = ','; else - l = 1; + l = 1; strcpy(cp, s); if (p) - cp += (p - s); + cp += (p - s); } else if (p2) p2[-1] = ','; @@ -121,7 +121,7 @@ * including asm library versions and memcpy, if compiled with the * optimizer on. (-O2 for gcc) --Bleep */ -char *ircd_strncpy(char* s1, const char* s2, size_t n) +char *ircd_strncpy(char *s1, const char *s2, size_t n) { char *endp = s1 + n; char *s = s1; @@ -136,8 +136,13 @@ #ifndef FORCEINLINE -NTL_HDR_strChattr { NTL_SRC_strChattr } -NTL_HDR_strCasediff { NTL_SRC_strCasediff } +NTL_HDR_strChattr +{ +NTL_SRC_strChattr} + +NTL_HDR_strCasediff +{ +NTL_SRC_strCasediff} #endif /* !FORCEINLINE */ /*============================================================================= @@ -163,7 +168,8 @@ const char *ra = a; const char *rb = b; - while (ToLower(*ra) == ToLower(*rb)) { + while (ToLower(*ra) == ToLower(*rb)) + { if (!*ra++) return 0; else @@ -183,7 +189,8 @@ int left = n; if (!left--) return 0; - while (ToLower(*ra) == ToLower(*rb)) { + while (ToLower(*ra) == ToLower(*rb)) + { if (!*ra++ || !left--) return 0; else @@ -218,35 +225,40 @@ assert(0 != list); assert(0 != vector); assert(0 < size); - + /* * ignore spurious tokens */ while (token == *start) ++start; - for (end = strchr(start, token); end; end = strchr(start, token)) { + for (end = strchr(start, token); end; end = strchr(start, token)) + { *end++ = '\0'; /* * ignore spurious tokens */ while (token == *end) ++end; - for (i = 0; i < count; ++i) { + for (i = 0; i < count; ++i) + { if (0 == ircd_strcmp(vector[i], start)) - break; + break; } - if (i == count) { + if (i == count) + { vector[count++] = start; if (count == size) - return count; + return count; } start = end; } - if (*start) { - for (i = 0; i < count; ++i) { + if (*start) + { + for (i = 0; i < count; ++i) + { if (0 == ircd_strcmp(vector[i], start)) - return count; + return count; } vector[count++] = start; } @@ -278,20 +290,22 @@ assert(0 != list); assert(0 != vector); assert(1 < size); - + vector[count++] = start; - for (end = strchr(start, token); end; end = strchr(start, token)) { + for (end = strchr(start, token); end; end = strchr(start, token)) + { *end++ = '\0'; start = end; - if (*start) { + if (*start) + { vector[count++] = start; if (count < size) - continue; + continue; } break; } return count; -} +} /* * host_from_uh - get the host.domain part of a us...@ho...main string @@ -317,18 +331,17 @@ * this new faster inet_ntoa was ripped from: * From: Thomas Helvey <to...@in...> */ -static const char *IpQuadTab[] = -{ - "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", - "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", - "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", - "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", - "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", - "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", - "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", - "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", - "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", - "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", +static const char *IpQuadTab[] = { + "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", + "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", + "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", + "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", + "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", + "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", + "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", + "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", + "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", + "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126", "127", "128", "129", @@ -371,7 +384,7 @@ { char *p = buf; const unsigned char *a = (const unsigned char *)in; - const char* n; + const char *n; assert(0 != buf); assert(0 != in); @@ -413,13 +426,13 @@ static char buf[16]; unsigned char *s = (unsigned char *)&in.s_addr; unsigned char a, b, c, d; - + a = *s++; b = *s++; c = *s++; d = *s++; sprintf_irc(buf, "%u.%u.%u.%u", a, b, c, d); - + return buf; } @@ -432,15 +445,15 @@ int inet_netof(struct in_addr in) { int addr = in.s_net; - + if (addr & 0x80 == 0) return ((int)in.s_net); if (addr & 0x40 == 0) return ((int)in.s_net * 256 + in.s_host); - + return ((int)in.s_net * 256 + in.s_host * 256 + in.s_lh); -} +} #endif Index: match.c =================================================================== RCS file: /cvsroot/irc-dev/ircdh/ircd/match.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- match.c 21 Aug 2002 17:59:40 -0000 1.2 +++ match.c 22 Aug 2002 20:27:13 -0000 1.3 @@ -876,8 +876,7 @@ switch (*m) { case '\\': - if ((m[1] == '\\') || (m[1] == '*') || (m[1] == '?') - || (m[1] == '\0')) + if ((m[1] == '\\') || (m[1] == '*') || (m[1] == '?') || (m[1] == '\0')) break; continue; case '0': Index: querycmds.c =================================================================== RCS file: /cvsroot/irc-dev/ircdh/ircd/querycmds.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- querycmds.c 18 Aug 2002 22:59:22 -0000 1.3 +++ querycmds.c 22 Aug 2002 20:27:13 -0000 1.4 @@ -133,7 +133,8 @@ if (hunt_server(0, cptr, sptr, ":%s VERSION :%s", 1, parc, parv) == HUNTED_ISME) sendto_one(sptr, rpl_str(RPL_VERSION), - me.name, parv[0], version, debugmode, me.name, serveropts); + me.name, parv[0], version, debugmode, me.name, serveropts, + versionhispano); return 0; } Index: s_bdd.c =================================================================== RCS file: /cvsroot/irc-dev/ircdh/ircd/s_bdd.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- s_bdd.c 21 Aug 2002 17:59:40 -0000 1.5 +++ s_bdd.c 22 Aug 2002 20:27:13 -0000 1.6 @@ -300,10 +300,6 @@ { *reg3 = reg2; - if (reg->clave) - RunFree(reg->clave); - if (reg->valor) - RunFree(reg->valor); RunFree(reg); tabla_cuantos[tabla]--; break; @@ -329,23 +325,17 @@ /* lo borro primero, por si es un cambio */ db_eliminar_registro(tabla, clave); - c = RunMalloc(strlen(clave) + 1); - if (!c) - return; - v = RunMalloc(strlen(valor) + 1); - if (!v) - { - RunFree(c); - return; - } +/* +** Guardamos los datos del registro justo al lado del registro, para +** reducir la ocupacion de memoria y, sobre todo, el numero de +** Mallocs. +*/ + reg = + RunMalloc(sizeof(struct db_reg) + strlen(clave) + 1 + strlen(valor) + 1); + assert(reg); - reg = RunMalloc(sizeof(struct db_reg)); - if (!reg) - { - RunFree(c); - RunFree(v); - return; - } + c = (char *)reg + sizeof(struct db_reg); + v = c + strlen(clave) + 1; strcpy(c, clave); strcpy(v, valor); @@ -428,7 +418,7 @@ /* * db_es_miembro (tabla, clave, subcadena) * - * varor registro es una lista separada por comas, y si subcadena es + * valor registro es una lista separada por comas, y si subcadena es # una de ellas, retorna la posicion, sino 0 * 1999/07/03 sa...@ap... */ @@ -899,10 +889,6 @@ for (reg = tabla_datos[que_bdd][i]; reg != NULL; reg = reg2) { reg2 = reg->next; - if (reg->clave) - RunFree(reg->clave); - if (reg->valor) - RunFree(reg->valor); RunFree(reg); } tabla_datos[que_bdd][i] = NULL; Index: s_debug.c =================================================================== RCS file: /cvsroot/irc-dev/ircdh/ircd/s_debug.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- s_debug.c 18 Aug 2002 22:59:22 -0000 1.4 +++ s_debug.c 22 Aug 2002 20:27:13 -0000 1.5 @@ -224,7 +224,7 @@ '-', #endif #endif - 'D','B','9','5', + 'D','B','9','6', #ifdef BDD '+', #else Index: s_err.c =================================================================== RCS file: /cvsroot/irc-dev/ircdh/ircd/s_err.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- s_err.c 15 Aug 2002 23:10:15 -0000 1.4 +++ s_err.c 22 Aug 2002 20:27:13 -0000 1.5 @@ -43,7 +43,7 @@ {RPL_CREATED, ":This server was created %s"}, /* 004 */ #if defined(BDD) && defined(BDD_VIP) - {RPL_MYINFO, "%s %s dioswkgxXrhS biklmnopstvrR"}, + {RPL_MYINFO, "%s %s dioswkgxXrRhS biklmnopstvrR"}, #elif defined(BDD) {RPL_MYINFO, "%s %s dioswkgrhS biklmnopstvrR"}, #else @@ -263,8 +263,13 @@ {ERR_ISCHANSERVICE, "%s %s :Cannot kick or deop channel service"}, /* 485 */ {0, (char *)NULL}, +#ifdef BDD +/* 486 */ + {ERR_NONONREG, ":You need +r mode to send a private message to user %s"}, +#else /* 486 */ {0, (char *)NULL}, +#endif /* 487 */ {0, (char *)NULL}, /* 488 */ @@ -312,7 +317,7 @@ /* 509 */ {0, (char *)NULL}, /* 510 */ - {0, (char *)NULL}, + {ERR_ISSILENCING, ":You can't talk to %s. (S)he is silencing you"}, /* 511 */ {ERR_SILELISTFULL, "%s :Your silence list is full"}, #ifdef WATCH @@ -442,7 +447,7 @@ /* 350 */ {0, (char *)NULL}, /* 351 */ - {RPL_VERSION, "%s.%s %s :%s"}, + {RPL_VERSION, "%s.%s %s :%s %s"}, /* 352 */ {RPL_WHOREPLY, "%s"}, /* 353 */ Index: s_user.c =================================================================== RCS file: /cvsroot/irc-dev/ircdh/ircd/s_user.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- s_user.c 21 Aug 2002 17:59:40 -0000 1.7 +++ s_user.c 22 Aug 2002 20:27:13 -0000 1.8 @@ -290,6 +290,7 @@ return (ch - nick); } + #if 0 /* * canonize @@ -764,6 +765,7 @@ sprintf(buf, "NICKLEN=%d AWAYLEN=%d QUITLEN=%d CHANNELLEN=%d" "KICKLEN=%d TOPICLEN=%d", NICKLEN, AWAYLEN, QUITLEN, CHANNELLEN, KICKLEN, TOPICLEN); + sendto_one(sptr, rpl_str(RPL_ISUPPORT), me.name, nick, buf); sprintf(buf, "CHANMODES=b,k,l,imnpst"); #if defined(BDD) @@ -820,6 +822,7 @@ HMODE_HIDDENVIEWER, 'X', HMODE_SERVICESBOT, 'B', HMODE_NICKSUSPENDED, 'S', + HMODE_MSGONLYREG, 'R', 0, 0 }; #endif /* BDD */ @@ -2028,6 +2031,15 @@ { if (MyUser(sptr) && check_target_limit(sptr, acptr, acptr->name, 0)) continue; +#ifdef BDD + if (MyUser(sptr) && IsMsgOnlyReg(acptr) && !IsNickRegistered(sptr) + && !IsAnOper(sptr)) + { + sendto_one(sptr, err_str(ERR_NONONREG), me.name, parv[0], + acptr->name); + continue; + } +#endif if (!is_silenced(sptr, acptr)) { if (!notice && MyConnect(sptr) && acptr->user && acptr->user->away) @@ -2048,15 +2060,13 @@ { if (MyUser(sptr) || (Protocol(sptr->from) < 10)) { - sendto_one(sptr, - ":%s NOTICE %s :You can't talk to %s. (S)he is silencing you", - me.name, sptr->name, acptr->name); + sendto_one(sptr, err_str(ERR_ISSILENCING), me.name, sptr->name, + acptr->name); } else { - sendto_one(sptr, - ":%s NOTICE %s%s :You can't talk to %s. (S)he is silencing you", - me.name, NumNick(sptr), acptr->name); + sendto_one(sptr, err_str(ERR_ISSILENCING), me.name, sptr->name, + acptr->name); } } } @@ -2253,15 +2263,13 @@ { if (MyUser(sptr) || (Protocol(sptr->from) < 10)) { - sendto_one(sptr, - ":%s NOTICE %s :You can't talk to %s. (S)he is silencing you", - me.name, sptr->name, tcptr->name); + sendto_one(sptr, err_str(ERR_ISSILENCING), me.name, sptr->name, + tcptr->name); } else { - sendto_one(sptr, - ":%s NOTICE %s%s :You can't talk to %s. (S)he is silencing you", - me.name, NumNick(sptr), tcptr->name); + sendto_one(sptr, err_str(ERR_ISSILENCING), me.name, sptr->name, + tcptr->name); } return 0; } Index: support.c =================================================================== RCS file: /cvsroot/irc-dev/ircdh/ircd/support.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- support.c 21 Aug 2002 17:59:40 -0000 1.4 +++ support.c 22 Aug 2002 20:27:13 -0000 1.5 @@ -28,7 +28,7 @@ #include "support.h" #include "sys.h" -#include <signal.h> /* kill */ +#include <signal.h> /* kill */ #include <stdarg.h> #include <stdio.h> #include <string.h> Index: table_gen.c =================================================================== RCS file: /cvsroot/irc-dev/ircdh/ircd/table_gen.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- table_gen.c 21 Aug 2002 17:59:40 -0000 1.1 +++ table_gen.c 22 Aug 2002 20:27:14 -0000 1.2 @@ -99,7 +99,7 @@ moveMacro(NTL_GRAPH, NTL_PRINT); markString(NTL_PRINT, " "); - markRange(NTL_IRCCH, 0, (char) UCHAR_MAX); + markRange(NTL_IRCCH, 0, (char)UCHAR_MAX); unMarkString(NTL_IRCCH, "\007\040\054\240"); markRange(NTL_IRCCL, '\300', '\326'); @@ -344,5 +344,3 @@ printf("\n"); } } - - Index: version.c.SH =================================================================== RCS file: /cvsroot/irc-dev/ircdh/ircd/version.c.SH,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- version.c.SH 18 Aug 2002 22:49:43 -0000 1.3 +++ version.c.SH 22 Aug 2002 20:27:14 -0000 1.4 @@ -71,10 +71,8 @@ const char *generation = "$generation"; const char *creation = "$creation"; -const char *version = "$cvsversion" PATCH2 PATCH3 PATCH4 PATCH5 PATCH6\ - PATCH7 PATCH8 PATCH9 PATCH10 PATCH11 PATCH12 PATCH13 PATCH14 PATCH15\ - PATCH16 PATCH17 PATCH18 PATCH19 PATCH20 PATCH21 PATCH22 PATCH23 PATCH24\ - PATCH25 PATCH26 PATCH27 PATCH28 PATCH29 PATCH30 PATCH31 PATCH32; +const char *version = "IRC-Dev" RELEASE PATCHLEVEL; +const char *versionhispano = "$cvsversion"; const char *infotext[] = { "IRC --", |