summaryrefslogtreecommitdiff
path: root/include/numeric.h
diff options
context:
space:
mode:
authormichael <michael@82007160-df01-0410-b94d-b575c5fd34c7>2013-04-19 19:16:09 +0000
committermichael <michael@82007160-df01-0410-b94d-b575c5fd34c7>2013-04-19 19:16:09 +0000
commitf27e1d9b7ee2cbd16bbdadf35872ef39f0527aac (patch)
treedf119cb19885ea1eed8c994ed1568858c8064474 /include/numeric.h
parent6b18f4241216eee3ea96ac807509bbd246a534f5 (diff)
- Made all numeric defines use the actual string instead of the numeric value
which allows to use gcc's printf format attribute - Remove current message locale implementation git-svn-id: svn://svn.ircd-hybrid.org/svnroot/ircd-hybrid/trunk@1832 82007160-df01-0410-b94d-b575c5fd34c7
Diffstat (limited to 'include/numeric.h')
-rw-r--r--include/numeric.h635
1 files changed, 199 insertions, 436 deletions
diff --git a/include/numeric.h b/include/numeric.h
index 558b7e5..d1ad106 100644
--- a/include/numeric.h
+++ b/include/numeric.h
@@ -25,459 +25,222 @@
#ifndef INCLUDED_numeric_h
#define INCLUDED_numeric_h
-#define LOCALE_LENGTH 64 /* maximum length of locale name + 1 */
-
-struct NumericInfo
-{
- const char *name; /* common name of the numeric */
- const char *standard; /* standard numeric text */
- char *translated; /* translated numeric text */
-};
-
-/* form_str - return a format string for a message number
- * messages are defined below
- */
-extern const char *form_str(int);
-extern void set_locale(const char *);
-extern const char *get_locale(void);
-
/*
* Reserve numerics 000-099 for server-client connections where the client
* is local to the server. If any server is passed a numeric in this range
* from another server then it is remapped to 100-199. -avalon
*/
-#define RPL_WELCOME 001
-#define RPL_YOURHOST 002
-#define RPL_CREATED 003
-#define RPL_MYINFO 004
-#define RPL_ISUPPORT 005
- /* RPL_BOUNCE IRCnet extension */
-/* RPL_MAP 6 unreal */
-/* RPL_MAPEND 7 unreal */
-/* RPL_SNOMASK 8 Undernet extension */
-/* RPL_STATMEMTOT 9 Undernet extension */
-/* RPL_STATMEM 10 Undernet extension */
-
-#define RPL_REDIR 10
-#define RPL_MAP 15 /* Undernet extension */
-#define RPL_MAPMORE 16 /* Undernet extension */
-#define RPL_MAPEND 17 /* Undernet extension */
-
-#define RPL_YOURID 42 /* IRCnet extension */
-/* RPL_ATTEMPTINGJUNC 50 aircd extension */
-/* RPL_ATTEMPTINGREROUTE 51 aircd extension */
+#define RPL_WELCOME ":%s 001 %s :Welcome to the %s Internet Relay Chat Network %s"
+#define RPL_YOURHOST ":%s 002 %s :Your host is %s, running version %s"
+#define RPL_CREATED ":%s 003 %s :This server was created %s"
+#ifdef HALFOPS
+#define RPL_MYINFO ":%s 004 %s %s %s %s biklmnoprstveIhORS bkloveIh"
+#else
+#define RPL_MYINFO ":%s 004 %s %s %s %s biklmnoprstveIORS bkloveI"
+#endif
+#define RPL_ISUPPORT ":%s 005 %s %s :are supported by this server"
+#define RPL_REDIR ":%s 010 %s %s %d :Please use this Server/Port instead"
+#define RPL_MAP ":%s 015 %s :%s"
+#define RPL_MAPEND ":%s 017 %s :End of /MAP"
+#define RPL_YOURID ":%s 042 %s %s :your unique ID"
/*
* Numeric replies from server commands.
* These are currently in the range 200-399.
*/
-#define RPL_TRACELINK 200
-#define RPL_TRACECONNECTING 201
-#define RPL_TRACEHANDSHAKE 202
-#define RPL_TRACEUNKNOWN 203
-#define RPL_TRACEOPERATOR 204
-#define RPL_TRACEUSER 205
-#define RPL_TRACESERVER 206
-#define RPL_TRACENEWTYPE 208
-#define RPL_TRACECLASS 209
-
-/* RPL_STATS 210 aircd extension, used instead of having
- multiple stats numerics */
-/* RPL_TRACERECONNECT 210 IRCnet extension */
+#define RPL_TRACELINK ":%s 200 %s Link %s %s %s"
+#define RPL_TRACECONNECTING ":%s 201 %s Try. %s %s"
+#define RPL_TRACEHANDSHAKE ":%s 202 %s H.S. %s %s"
+#define RPL_TRACEUNKNOWN ":%s 203 %s ???? %s %s (%s) %d"
+#define RPL_TRACEOPERATOR ":%s 204 %s Oper %s %s (%s) %lu %lu"
+#define RPL_TRACEUSER ":%s 205 %s User %s %s (%s) %lu %lu"
+#define RPL_TRACESERVER ":%s 206 %s Serv %s %dS %dC %s %s!%s@%s %lu"
+#define RPL_TRACENEWTYPE ":%s 208 %s <newtype> 0 %s"
+#define RPL_TRACECLASS ":%s 209 %s Class %s %d"
+#define RPL_STATSLINKINFO ":%s 211 %s %s %u %u %llu %u %llu :%u %u %s"
+#define RPL_STATSCOMMANDS ":%s 212 %s %s %u %llu :%u"
+#define RPL_STATSCLINE ":%s 213 %s %c %s %s %s %d %s"
+#define RPL_STATSNLINE ":%s 214 %s %c %s * %s %d %s"
+#define RPL_STATSILINE ":%s 215 %s %c %s * %s@%s %d %s"
+#define RPL_STATSKLINE ":%s 216 %s %s %s * %s :%s"
+#define RPL_STATSQLINE ":%s 217 %s %c %u %s :%s"
+#define RPL_STATSYLINE ":%s 218 %s %c %s %u %u %u %u %u %u %u/%u %u/%u %s"
+#define RPL_ENDOFSTATS ":%s 219 %s %c :End of /STATS report"
-#define RPL_STATSLINKINFO 211
-#define RPL_STATSCOMMANDS 212
-#define RPL_STATSCLINE 213
-#define RPL_STATSNLINE 214
-/* RPL_STATSOLDNLINE 214 unreal */
-#define RPL_STATSILINE 215
-#define RPL_STATSKLINE 216
-#define RPL_STATSQLINE 217
-#define RPL_STATSYLINE 218
-#define RPL_ENDOFSTATS 219
-/* note ircu uses 217 for STATSPLINE frip. conflict
+/*
+ * note ircu uses 217 for STATSPLINE frip. conflict
* as RPL_STATSQLINE was used in old 2.8 for Q line
* I'm going to steal 220 for now *sigh*
* -Dianora
*/
-
-#define RPL_STATSPLINE 220
-#define RPL_UMODEIS 221
-
-/* RPL_SQLINE_NICK 222 Numerics List: Dalnet */
-/* RPL_STATSELINE 223 dalnet */
-/* RPL_STATSGLINE 223 unreal */
-/* RPL_STATSFLINE 224 Hybrid extension,Dalnet */
-/* RPL_STATSTLINE 224 unreal */
-/* RPL_STATSDLINE 225 Hybrid extension */
-/* RPL_STATSZLINE 225 Dalnet
- RPL_STATSELINE 225 unreal
- RPL_STATSCOUNT 226 Dalnet
- RPL_STATSNLINE 226 unreal
- RPL_STATSGLINE 227 Dalnet
- RPL_STATSVLINE 227 unreal */
-
-#define RPL_STATSFLINE 224
-#define RPL_STATSDLINE 225
-#define RPL_STATSALINE 226
-
-/* RPL_RULES 232 unreal */
-
-/* RPL_STATSIAUTH 239 IRCnet extension */
-/* RPL_STATSVLINE 240 IRCnet extension */
-/* RPL_STATSXLINE 240 austnet */
-
-#define RPL_STATSLLINE 241
-#define RPL_STATSUPTIME 242
-#define RPL_STATSOLINE 243
-#define RPL_STATSHLINE 244
-/* 245 No longer used in ircd-hybrid */
-#define RPL_STATSSLINE 245
-#define RPL_STATSSERVICE 246
-#define RPL_STATSXLINE 247
-#define RPL_STATSULINE 248
-#define RPL_STATSDEBUG 249
-#define RPL_STATSCONN 250
-/* RPL_STATSDLINE 250 Numerics List: IRCnet */
-#define RPL_LUSERCLIENT 251
-#define RPL_LUSEROP 252
-#define RPL_LUSERUNKNOWN 253
-#define RPL_LUSERCHANNELS 254
-#define RPL_LUSERME 255
-#define RPL_ADMINME 256
-#define RPL_ADMINLOC1 257
-#define RPL_ADMINLOC2 258
-#define RPL_ADMINEMAIL 259
-
-#define RPL_ENDOFTRACE 262
-#define RPL_LOAD2HI 263
-
-/* RPL_TRYAGAIN 263 Numerics List: IRCnet */
-/* RPL_LOAD2HI 263 Dalnet */
-/* RPL_CURRENT_LOCAL 265 aircd/efnet/hybrid/dalnet*/
-/* RPL_CURRENT_GLOBAL 266 aircd/efnet/hybrid/dalnet */
-/* RPL_START_NETSTAT 267 aircd */
-/* RPL_NETSTAT 268 aircd */
-/* RPL_END_NETSTAT 269 aircd */
-
-#define RPL_LOCALUSERS 265
-#define RPL_GLOBALUSERS 266
-
-#define RPL_ACCEPTLIST 281
-#define RPL_ENDOFACCEPT 282
-
-/* RPL_GLIST 280 Undernet extension */
-/* RPL_ENDOFGLIST 281 Undernet extension */
-/* RPL_JUPELIST 282 Undernet extension - jupe -Kev */
-/* RPL_ENDOFJUPELIST 283 Undernet extension - jupe -Kev */
-/* RPL_FEATURE 284 Undernet extension - features */
-/* RPL_CHANINFO_HANDLE 285 aircd */
-/* RPL_CHANINFO_USERS 286 aircd */
-/* RPL_CHANINFO_CHOPS 287 aircd */
-/* RPL_CHANINFO_VOICES 288 aircd */
-/* RPL_CHANINFO_AWAY 289 aircd */
-/* RPL_CHANINFO_OPERS 290 aircd */
-/* RPL_HELPHDR 290 Numeric List: Dalnet */
-/* RPL_CHANINFO_BANNED 291 aircd */
-/* RPL_HELPOP 291 Numeric List: Dalnet */
-/* RPL_CHANINFO_BANS 292 aircd */
-/* RPL_HELPTLR 292 Numeric List: Dalnet */
-/* RPL_CHANINFO_INVITE 293 aircd */
-/* RPL_HELPHLP 293 Numeric List: Dalnet */
-/* RPL_CHANINFO_INVITES 294 aircd */
-/* RPL_HELPFWD 294 Numeric List: Dalnet */
-/* RPL_CHANINFO_KICK 295 aircd */
-/* RPL_HELPIGN 295 Numeric List: Dalnet */
-/* RPL_CHANINFO_KICKS 296 aircd */
-
-/* RPL_END_CHANINFO 299 aircd */
-
-/* numeric_replies */
-#define RPL_AWAY 301
-#define RPL_USERHOST 302
-#define RPL_ISON 303
-#define RPL_TEXT 304
-#define RPL_UNAWAY 305
-#define RPL_NOWAWAY 306
-/* RPL_USERIP 307 Undernet extension */
-#define RPL_WHOISREGNICK 307
-/* RPL_SUSERHOST 307 austnet */
-/* RPL_NOTIFYACTION 308 aircd */
-#define RPL_WHOISADMIN 308 /* Numeric List: Dalnet */
-/* RPL_RULESSTART 308 unreal */
-/* RPL_NICKTRACE 309 aircd */
-/* RPL_WHOISSADMIN 309 Numeric List: Dalnet */
-/* RPL_ENDOFRULES 309 unreal */
-/* RPL_WHOISHELPER 309 austnet */
-/* RPL_WHOISSVCMSG 310 Dalnet */
-/* RPL_WHOISHELPOP 310 unreal */
-/* RPL_WHOISSERVICE 310 austnet */
-
-#define RPL_WHOISUSER 311
-#define RPL_WHOISSERVER 312
-#define RPL_WHOISOPERATOR 313
-
-#define RPL_WHOWASUSER 314
-/* rpl_endofwho below (315) */
-#define RPL_ENDOFWHOWAS 369
-
-#define RPL_WHOISCHANOP 316 /* redundant and not needed but reserved */
-#define RPL_WHOISIDLE 317
-
-#define RPL_ENDOFWHOIS 318
-#define RPL_WHOISCHANNELS 319
-/* RPL_WHOIS_HIDDEN 320 Anothernet +h, ick! */
-/* RPL_WHOISSPECIAL 320 unreal */
-#define RPL_LISTSTART 321
-#define RPL_LIST 322
-#define RPL_LISTEND 323
-#define RPL_CHANNELMODEIS 324
-/* RPL_CHANNELPASSIS 325 IRCnet extension */
-/* RPL_UNIQOPIS 325 IRCnet extension */
-/* RPL_NOCHANPASS 326 IRCnet extension */
-/* RPL_CHPASSUNKNOWN 327 IRCnet extension */
-/* RPL_CHANNEL_URL 328 dalnet, anothernet */
-#define RPL_CREATIONTIME 329
-/* RPL_WHOWAS_TIME 330 ? */
-#define RPL_NOTOPIC 331
-#define RPL_TOPIC 332
-#define RPL_TOPICWHOTIME 333
-/* RPL_COMMANDSYNTAX 334 Dalnet */
-/* RPL_LISTSYNTAX 334 unreal */
-/* RPL_CHANPASSOK 338 IRCnet extension (?)*/
-#define RPL_WHOISACTUALLY 338 /* dalnet */
-/* RPL_WHOISACTUALLY 338 Undernet extension, dalnet */
-/* RPL_BADCHANPASS 339 IRCnet extension (?)*/
-/* RPL_USERIP 340 (old) Undernet extension */
-#define RPL_INVITING 341
-/* RPL_SUMMONING 342 removed from RFC1459 */
-
-#define RPL_INVITELIST 346
-#define RPL_ENDOFINVITELIST 347 /* IRCnet, Undernet extension */
-#define RPL_EXCEPTLIST 348
-#define RPL_ENDOFEXCEPTLIST 349
-
-#define RPL_VERSION 351
-
-#define RPL_WHOREPLY 352
-#define RPL_ENDOFWHO 315
-#define RPL_NAMREPLY 353
-#define RPL_ENDOFNAMES 366
-
-#define RPL_CLOSING 362
-#define RPL_CLOSEEND 363
-#define RPL_LINKS 364
-#define RPL_ENDOFLINKS 365
-/* rpl_endofnames above (366) */
-#define RPL_BANLIST 367
-#define RPL_ENDOFBANLIST 368
-/* rpl_endofwhowas above (369) */
-
-#define RPL_INFO 371
-#define RPL_MOTD 372
-#define RPL_INFOSTART 373
-#define RPL_ENDOFINFO 374
-#define RPL_MOTDSTART 375
-#define RPL_ENDOFMOTD 376
-
-/* RPL_KICKEXPIRED 377 aircd */
-/* RPL_SPAM 377 austnet */
-/* RPL_BANEXPIRED 378 aircd */
-/* RPL_KICKLINKED 379 aircd */
-/* RPL_BANLINKED 380 aircd */
-
-#define RPL_YOUREOPER 381
-#define RPL_REHASHING 382
-/* RPL_YOURSERVICE 383 Numeric List: various */
-#define RPL_RSACHALLENGE 386
-
-/* RPL_QLIST 386 unreal */
-/* RPL_ENDOFQLIST 387 unreal */
-/* RPL_ALIST 388 unreal */
-/* RPL_ENDOFALIST 389 unreal */
-
-#define RPL_TIME 391
-#define RPL_USERSSTART 392
-#define RPL_USERS 393
-#define RPL_ENDOFUSERS 394
-#define RPL_NOUSERS 395
-#define RPL_HOSTHIDDEN 396
+#define RPL_STATSPLINE ":%s 220 %s %c %d %s %d %s :%s"
+#define RPL_UMODEIS ":%s 221 %s %s"
+#define RPL_STATSDLINE ":%s 225 %s %c %s :%s"
+#define RPL_STATSALINE ":%s 226 %s %s"
+#define RPL_STATSLLINE ":%s 241 %s %c %s * %s %d %s"
+#define RPL_STATSUPTIME ":%s 242 %s :Server Up %d days, %d:%02d:%02d"
+#define RPL_STATSOLINE ":%s 243 %s %c %s@%s * %s %s %s"
+#define RPL_STATSHLINE ":%s 244 %s %c %s * %s %d %s"
+#define RPL_STATSSERVICE ":%s 246 %s %c %s * %s %d %d"
+#define RPL_STATSXLINE ":%s 247 %s %s %d %s :%s"
+#define RPL_STATSULINE ":%s 248 %s U %s %s@%s %s"
+#define RPL_STATSCONN ":%s 250 %s :Highest connection count: %d (%d clients) (%llu connections received)"
+#define RPL_LUSERCLIENT ":%s 251 %s :There are %d users and %d invisible on %d servers"
+#define RPL_LUSEROP ":%s 252 %s %d :IRC Operators online"
+#define RPL_LUSERUNKNOWN ":%s 253 %s %d :unknown connection(s)"
+#define RPL_LUSERCHANNELS ":%s 254 %s %d :channels formed"
+#define RPL_LUSERME ":%s 255 %s :I have %d clients and %d servers"
+#define RPL_ADMINME ":%s 256 %s :Administrative info about %s"
+#define RPL_ADMINLOC1 ":%s 257 %s :%s"
+#define RPL_ADMINLOC2 ":%s 258 %s :%s"
+#define RPL_ADMINEMAIL ":%s 259 %s :%s"
+#define RPL_ENDOFTRACE ":%s 262 %s %s :End of TRACE"
+#define RPL_LOAD2HI ":%s 263 %s :Server load is temporarily too heavy. Please wait a while and try again."
+#define RPL_LOCALUSERS ":%s 265 %s :Current local users: %d Max: %d"
+#define RPL_GLOBALUSERS ":%s 266 %s :Current global users: %d Max: %d"
+#define RPL_ACCEPTLIST ":%s 281 %s :%s"
+#define RPL_ENDOFACCEPT ":%s 282 %s :End of /ACCEPT list."
+#define RPL_AWAY ":%s 301 %s %s :%s"
+#define RPL_USERHOST ":%s 302 %s :%s"
+#define RPL_ISON ":%s 303 %s :"
+#define RPL_UNAWAY ":%s 305 %s :You are no longer marked as being away"
+#define RPL_NOWAWAY ":%s 306 %s :You have been marked as being away"
+#define RPL_WHOISREGNICK ":%s 307 %s %s :has identified for this nick"
+#define RPL_WHOISADMIN ":%s 313 %s %s :is a Server Administrator"
+#define RPL_WHOISUSER ":%s 311 %s %s %s %s * :%s"
+#define RPL_WHOISSERVER ":%s 312 %s %s %s :%s"
+#define RPL_WHOISOPERATOR ":%s 313 %s %s :is an IRC Operator"
+#define RPL_WHOWASUSER ":%s 314 %s %s %s %s * :%s"
+#define RPL_ENDOFWHO ":%s 315 %s %s :End of /WHO list."
+#define RPL_WHOISIDLE ":%s 317 %s %s %u %d :seconds idle, signon time"
+#define RPL_ENDOFWHOIS ":%s 318 %s %s :End of /WHOIS list."
+#define RPL_WHOISCHANNELS ":%s 319 %s %s :%s"
+#define RPL_LISTSTART ":%s 321 %s Channel :Users Name"
+#define RPL_LIST ":%s 322 %s %s %d :%s"
+#define RPL_LISTEND ":%s 323 %s :End of /LIST"
+#define RPL_CHANNELMODEIS ":%s 324 %s %s %s %s"
+#define RPL_CREATIONTIME ":%s 329 %s %s %lu"
+#define RPL_NOTOPIC ":%s 331 %s %s :No topic is set."
+#define RPL_TOPIC ":%s 332 %s %s :%s"
+#define RPL_TOPICWHOTIME ":%s 333 %s %s %s %lu"
+#define RPL_WHOISACTUALLY ":%s 338 %s %s %s :actually using host"
+#define RPL_INVITING ":%s 341 %s %s %s"
+#define RPL_INVITELIST ":%s 346 %s %s %s!%s@%s %s %lu"
+#define RPL_ENDOFINVITELIST ":%s 347 %s %s :End of Channel Invite List"
+#define RPL_EXCEPTLIST ":%s 348 %s %s %s!%s@%s %s %lu"
+#define RPL_ENDOFEXCEPTLIST ":%s 349 %s %s :End of Channel Exception List"
+#define RPL_VERSION ":%s 351 %s %s(%s). %s :%s%s"
+#define RPL_WHOREPLY ":%s 352 %s %s %s %s %s %s %s :%d %s"
+#define RPL_NAMREPLY ":%s 353 %s %s %s :"
+#define RPL_CLOSING ":%s 362 %s %s :Closed. Status = %d"
+#define RPL_CLOSEEND ":%s 363 %s %d: Connections Closed"
+#define RPL_LINKS ":%s 364 %s %s %s :%d %s"
+#define RPL_ENDOFLINKS ":%s 365 %s %s :End of /LINKS list."
+#define RPL_ENDOFNAMES ":%s 366 %s %s :End of /NAMES list."
+#define RPL_BANLIST ":%s 367 %s %s %s!%s@%s %s %lu"
+#define RPL_ENDOFBANLIST ":%s 368 %s %s :End of Channel Ban List"
+#define RPL_ENDOFWHOWAS ":%s 369 %s %s :End of WHOWAS"
+#define RPL_INFO ":%s 371 %s :%s"
+#define RPL_MOTD ":%s 372 %s :- %s"
+#define RPL_INFOSTART ":%s 373 %s :Server INFO"
+#define RPL_ENDOFINFO ":%s 374 %s :End of /INFO list."
+#define RPL_MOTDSTART ":%s 375 %s :- %s Message of the Day - "
+#define RPL_ENDOFMOTD ":%s 376 %s :End of /MOTD command."
+#define RPL_YOUREOPER ":%s 381 %s :You have entered... the Twilight Zone!"
+#define RPL_REHASHING ":%s 382 %s %s :Rehashing"
+#define RPL_TIME ":%s 391 %s %s :%s"
+#define RPL_HOSTHIDDEN ":%s 396 %s %s :is now your hidden host"
/*
* Errors are in the range from 400-599 currently and are grouped by what
* commands they come from.
*/
-#define ERR_NOSUCHNICK 401
-#define ERR_NOSUCHSERVER 402
-#define ERR_NOSUCHCHANNEL 403
-#define ERR_CANNOTSENDTOCHAN 404
-#define ERR_TOOMANYCHANNELS 405
-#define ERR_WASNOSUCHNICK 406
-#define ERR_TOOMANYTARGETS 407
-#define ERR_NOORIGIN 409
-#define ERR_INVALIDCAPCMD 410
-
-#define ERR_NORECIPIENT 411
-#define ERR_NOTEXTTOSEND 412
-#define ERR_NOTOPLEVEL 413
-#define ERR_WILDTOPLEVEL 414
-/* ERR_BADMASK 415 IRCnet extension */
-#define ERR_UNKNOWNCOMMAND 421
-#define ERR_NOMOTD 422
-#define ERR_NOADMININFO 423
-
-/* ERR_TOOMANYAWAY 429 Dalnet */
-
-#define ERR_NONICKNAMEGIVEN 431
-#define ERR_ERRONEUSNICKNAME 432
-#define ERR_NICKNAMEINUSE 433
-
-/* ERR_SERVICENAMEINUSE 434 ? */
-/* ERR_NORULES 434 unreal */
-/* ERR_SERVICECONFUSED 435 ? */
-/* ERR_BANONCHAN 435 dalnet */
-
-#define ERR_NICKCOLLISION 436
-#define ERR_UNAVAILRESOURCE 437
-#define ERR_NICKTOOFAST 438 /* We did it first Undernet! ;) db */
-
-#define ERR_SERVICESDOWN 440
-
-#define ERR_USERNOTINCHANNEL 441
-#define ERR_NOTONCHANNEL 442
-#define ERR_USERONCHANNEL 443
-
-#define ERR_NOTREGISTERED 451
-
-/* ERR_IDCOLLISION 452 IRCnet extension ? */
-/* ERR_NICKLOST 453 IRCnet extension ? */
-
-/* ERR_HOSTILENAME 455 unreal */
-
-/* ERR_NOHIDING 459 unreal */
-/* ERR_NOTFORHALFOPS 460 unreal */
-
-#define ERR_ACCEPTFULL 456
-#define ERR_ACCEPTEXIST 457
-#define ERR_ACCEPTNOT 458
-
-#define ERR_NEEDMOREPARAMS 461
-#define ERR_ALREADYREGISTRED 462
-#define ERR_PASSWDMISMATCH 464
-#define ERR_YOUREBANNEDCREEP 465
-#define ERR_ONLYSERVERSCANCHANGE 468
-/* ERR_LINKSET 469 unreal */
-/* ERR_LINKCHANNEL 470 unreal */
-/* ERR_KICKEDFROMCHAN 470 aircd */
-#define ERR_OPERONLYCHAN 470
-#define ERR_CHANNELISFULL 471
-#define ERR_UNKNOWNMODE 472
-#define ERR_INVITEONLYCHAN 473
-#define ERR_BANNEDFROMCHAN 474
-#define ERR_BADCHANNELKEY 475
-#define ERR_NEEDREGGEDNICK 477
-#define ERR_BANLISTFULL 478 /* I stole the numeric from ircu -db */
-#define ERR_BADCHANNAME 479
-/* ERR_LINKFAIL 479 unreal */
-#define ERR_SSLONLYCHAN 480
-#define ERR_NOPRIVILEGES 481
-#define ERR_CHANOPRIVSNEEDED 482
-#define ERR_CANTKILLSERVER 483
-#define ERR_RESTRICTED 484
-/* ERR_DESYNC 484 Dalnet,PTlink */
-/* ERR_ATTACKDENY 484 unreal */
-/* ERR_RESTRICTED 484 IRCnet extension */
-/* ERR_UNIQOPRIVSNEEDED 485 IRCnet extension */
-/* ERR_KILLDENY 485 unreal */
-/* ERR_CANTKICKADMIN 485 PTlink */
-#define ERR_NONONREG 486
-/* ERR_CHANTOORECENT 487 IRCnet extension (?) */
-/* ERR_TSLESSCHAN 488 IRCnet extension (?) */
-/* ERR_VOICENEEDED 489 Undernet extension */
-#define ERR_NOOPERHOST 491
-/* ERR_NOSERVICEHOST 492 IRCnet extension */
-
-#define ERR_UMODEUNKNOWNFLAG 501
-#define ERR_USERSDONTMATCH 502
-
-#define ERR_GHOSTEDCLIENT 503
-/* ERR_VWORLDWARN 503 austnet */
-
-#define ERR_USERNOTONSERV 504
-
-/* #define ERR_LAST_ERR_MSG 505
- * moved to 999
- */
-
-
-#define ERR_TOOMANYWATCH 512
-#define ERR_WRONGPONG 513
-/* ERR_TOOMANYDCC 514 dalnet */
-/* ERR_NOINVITE 518 unreal */
-#define ERR_LONGMASK 518 /* Undernet extension -Kev */
-/* ERR_ADMONLY 519 unreal */
-/* ERR_TOOMANYUSERS 519 Undernet extension -Kev */
-/* ERR_OPERONLY 520 unreal */
-/* ERR_MASKTOOWIDE 520 Undernet extension -Kev */
-/* ERR_WHOTRUNC 520 austnet */
-/* ERR_LASTERROR 521 Undernet extension -Kev */
-#define ERR_LISTSYNTAX 521
-/* ERR_WHOSYNTAX 522 dalnet */
-/* ERR_WHOLIMEXCEED 523 dalnet */
-
-#define ERR_HELPNOTFOUND 524
-
-#define RPL_LOGON 600
-#define RPL_LOGOFF 601
-#define RPL_WATCHOFF 602
-#define RPL_WATCHSTAT 603
-#define RPL_NOWON 604
-#define RPL_NOWOFF 605
-#define RPL_WATCHLIST 606
-#define RPL_ENDOFWATCHLIST 607
-
-/* RPL_MAPMORE 610 unreal
-
- RPL_MAPMORE 615 PTlink
-
- RPL_DCCSTATUS 617 dalnet
- RPL_DCCLIST 618 dalnet
- RPL_ENDOFDCCLIST 619 dalnet
- RPL_DCCINFO 620 dalnet
-
- RPL_DUMPING 640 unreal
- RPL_DUMPRPL 641 unreal
- RPL_EODUMP 642 unreal
-*/
-
-#define RPL_WHOISSECURE 671
-#define RPL_MODLIST 702
-#define RPL_ENDOFMODLIST 703
-
-#define RPL_HELPSTART 704
-#define RPL_HELPTXT 705
-#define RPL_ENDOFHELP 706
-
-#define RPL_ETRACE_FULL 708
-#define RPL_ETRACE 709
-
-#define RPL_KNOCK 710
-#define RPL_KNOCKDLVR 711
-
-#define ERR_TOOMANYKNOCK 712
-#define ERR_CHANOPEN 713
-#define ERR_KNOCKONCHAN 714
-
-#define RPL_TARGUMODEG 716
-#define RPL_TARGNOTIFY 717
-#define RPL_UMODEGMSG 718
-
-#define ERR_NOPRIVS 723
-
-#define RPL_TESTMASK 724
-#define RPL_TESTLINE 725
-#define RPL_NOTESTLINE 726
-
-#define ERR_LAST_ERR_MSG 999
-
-#endif /* INCLUDED_numeric_h */
+#define ERR_NOSUCHNICK ":%s 401 %s %s :No such nick/channel"
+#define ERR_NOSUCHSERVER ":%s 402 %s %s :No such server"
+#define ERR_NOSUCHCHANNEL ":%s 403 %s %s :No such channel"
+#define ERR_CANNOTSENDTOCHAN ":%s 404 %s %s :Cannot send to channel"
+#define ERR_TOOMANYCHANNELS ":%s 405 %s %s :You have joined too many channels"
+#define ERR_WASNOSUCHNICK ":%s 406 %s %s :There was no such nickname"
+#define ERR_TOOMANYTARGETS ":%s 407 %s %s :Too many recipients. Only %d processed"
+#define ERR_NOORIGIN ":%s 409 %s :No origin specified"
+#define ERR_INVALIDCAPCMD ":%s 410 %s %s :Invalid CAP subcommand"
+#define ERR_NORECIPIENT ":%s 411 %s :No recipient given (%s)"
+#define ERR_NOTEXTTOSEND ":%s 412 %s :No text to send"
+#define ERR_NOTOPLEVEL ":%s 413 %s %s :No toplevel domain specified"
+#define ERR_WILDTOPLEVEL ":%s 414 %s %s :Wildcard in toplevel Domain"
+#define ERR_UNKNOWNCOMMAND ":%s 421 %s %s :Unknown command"
+#define ERR_NOMOTD ":%s 422 %s :MOTD File is missing"
+#define ERR_NOADMININFO ":%s 423 %s %s :No administrative info available"
+#define ERR_NONICKNAMEGIVEN ":%s 431 %s :No nickname given"
+#define ERR_ERRONEUSNICKNAME ":%s 432 %s %s :Erroneous Nickname"
+#define ERR_NICKNAMEINUSE ":%s 433 %s %s :Nickname is already in use."
+#define ERR_NICKCOLLISION ":%s 436 %s %s :Nickname collision KILL"
+#define ERR_UNAVAILRESOURCE ":%s 437 %s %s :Nick/channel is temporarily unavailable"
+#define ERR_NICKTOOFAST ":%s 438 %s %s %s :Nick change too fast. Please wait %d seconds."
+#define ERR_SERVICESDOWN ":%s 440 %s %s :Services is currently down."
+#define ERR_USERNOTINCHANNEL ":%s 441 %s %s %s :They aren't on that channel"
+#define ERR_NOTONCHANNEL ":%s 442 %s %s :You're not on that channel"
+#define ERR_USERONCHANNEL ":%s 443 %s %s %s :is already on channel"
+#define ERR_NOTREGISTERED ":%s 451 %s :You have not registered"
+#define ERR_ACCEPTFULL ":%s 456 %s :Accept list is full"
+#define ERR_ACCEPTEXIST ":%s 457 %s %s!%s@%s :is already on your accept list"
+#define ERR_ACCEPTNOT ":%s 458 %s %s!%s@%s :is not on your accept list"
+#define ERR_NEEDMOREPARAMS ":%s 461 %s %s :Not enough parameters"
+#define ERR_ALREADYREGISTRED ":%s 462 %s :You may not reregister"
+#define ERR_PASSWDMISMATCH ":%s 464 %s :Password Incorrect"
+#define ERR_YOUREBANNEDCREEP ":%s 465 %s :You are banned from this server- %s"
+#define ERR_ONLYSERVERSCANCHANGE ":%s 468 %s %s :Only servers can change that mode"
+#define ERR_OPERONLYCHAN ":%s 470 %s %s :Cannot join channel (+O)"
+#define ERR_CHANNELISFULL ":%s 471 %s %s :Cannot join channel (+l)"
+#define ERR_UNKNOWNMODE ":%s 472 %s %c :is unknown mode char to me"
+#define ERR_INVITEONLYCHAN ":%s 473 %s %s :Cannot join channel (+i)"
+#define ERR_BANNEDFROMCHAN ":%s 474 %s %s :Cannot join channel (+b)"
+#define ERR_BADCHANNELKEY ":%s 475 %s %s :Cannot join channel (+k)"
+#define ERR_NEEDREGGEDNICK ":%s 477 %s %s :You need to identify to a registered nick to join or speak in that channel."
+#define ERR_BANLISTFULL ":%s 478 %s %s %s :Channel ban list is full"
+#define ERR_BADCHANNAME ":%s 479 %s %s :Illegal channel name"
+#define ERR_SSLONLYCHAN ":%s 480 %s %s :Cannot join channel (+S)"
+#define ERR_NOPRIVILEGES ":%s 481 %s :Permission Denied - You're not an IRC operator"
+#define ERR_CHANOPRIVSNEEDED ":%s 482 %s %s :You're not channel operator"
+#define ERR_CANTKILLSERVER ":%s 483 %s :You can't kill a server!"
+#define ERR_RESTRICTED ":%s 484 %s :You are restricted"
+#define ERR_NONONREG ":%s 486 %s %s :You must identify to a registered nick to private message that person"
+#define ERR_NOOPERHOST ":%s 491 %s :Only few of mere mortals may try to enter the twilight zone"
+#define ERR_UMODEUNKNOWNFLAG ":%s 501 %s :Unknown MODE flag"
+#define ERR_USERSDONTMATCH ":%s 502 %s :Can't change mode for other users"
+#define ERR_GHOSTEDCLIENT ":%s 503 %s :Message could not be delivered to %s"
+#define ERR_USERNOTONSERV ":%s 504 %s %s :User is not on this server"
+#define ERR_TOOMANYWATCH ":%s 512 %s %s :Maximum size for WATCH-list is %d entries"
+#define ERR_WRONGPONG ":%s 513 %s :To connect type /QUOTE PONG %u"
+#define ERR_LISTSYNTAX ":%s 521 %s :Bad list syntax, type /QUOTE HELP LIST"
+#define ERR_HELPNOTFOUND ":%s 524 %s %s :Help not found"
+#define RPL_LOGON ":%s 600 %s %s %s %s %d :logged online"
+#define RPL_LOGOFF ":%s 601 %s %s %s %s %d :logged offline"
+#define RPL_WATCHOFF ":%s 602 %s %s %s %s %d :stopped watching"
+#define RPL_WATCHSTAT ":%s 603 %s :You have %u and are on %u WATCH entries"
+#define RPL_NOWON ":%s 604 %s %s %s %s %d :is online"
+#define RPL_NOWOFF ":%s 605 %s %s %s %s %d :is offline"
+#define RPL_WATCHLIST ":%s 606 %s :%s"
+#define RPL_ENDOFWATCHLIST ":%s 607 %s :End of WATCH %c"
+#define RPL_WHOISSECURE ":%s 671 %s %s :is connected via SSL (secure link)"
+#define RPL_MODLIST ":%s 702 %s %s %p %s %s"
+#define RPL_ENDOFMODLIST ":%s 703 %s :End of /MODLIST."
+#define RPL_HELPSTART ":%s 704 %s %s :%s"
+#define RPL_HELPTXT ":%s 705 %s %s :%s"
+#define RPL_ENDOFHELP ":%s 706 %s %s :End of /HELP."
+#define RPL_ETRACE_FULL ":%s 708 %s %s %s %s %s %s %s %s %s :%s"
+#define RPL_ETRACE ":%s 709 %s %s %s %s %s %s %s :%s"
+#define RPL_KNOCK ":%s 710 %s %s %s!%s@%s :has asked for an invite."
+#define RPL_KNOCKDLVR ":%s 711 %s %s :Your KNOCK has been delivered."
+#define ERR_TOOMANYKNOCK ":%s 712 %s %s :Too many KNOCKs (%s)."
+#define ERR_CHANOPEN ":%s 713 %s %s :Channel is open."
+#define ERR_KNOCKONCHAN ":%s 714 %s %s :You are already on that channel."
+#define RPL_TARGUMODEG ":%s 716 %s %s :is in +g mode (server side ignore)"
+#define RPL_TARGNOTIFY ":%s 717 %s %s :has been informed that you messaged them."
+#define RPL_UMODEGMSG ":%s 718 %s %s :is messaging you, and you are umode +g."
+#define ERR_NOPRIVS ":%s 723 %s %s :Insufficient oper privs."
+#define RPL_TESTMASK ":%s 724 %s %s!%s@%s %u %u :Local/remote clients match."
+#define RPL_TESTLINE ":%s 725 %s %c %ld %s :%s"
+#define RPL_NOTESTLINE ":%s 726 %s %s :No matches"
+#define RPL_STATSDEBUG 249 /* XXX */
+#endif