only read this file if you want do write a patch.
there is often a chaos in this TODO file
also there are some german comments in here, so you may can not read this comments :)


--== TODO-List ==--

fix a bug in the user-input section so that a user can paste text that has multiple lines
add user and channelmodes to the class 'User' or somewhere else
possibility to make a / on the begining of a line
/who prints sometimes 1 empty line if you search with a pattern and the number of users in the result is the same number as we have to print on one line
logging function (for example -l)
add a lock() and unlock() function to all tables (reason: threads)

user-commands:
/mode

implemeted modes:
	i; w; l; o; v; b; e; k; n ; C

not implemented modes:
	a, h
		a - user is flagged as away;
		i - marks a users as invisible;
		w - user receives wallops;
		r - restricted user connection;
		o - operator flag;
		O - local operator flag;
	      channelmodes : sncJ
	      +C (block CTCP)  	 This umode prevents you from receiving personal CTCP messages or sending any CTCP replies. This will stop private CTCP flooding. You'll still receive CTCP messages sent to a channel you are on, although the network will block your response to them.
	      +e (identified user)  	 You have identified yourself to NickServ.
	      +E (block unidentified)  	 This umode prevents private messages from people who have not identified themselves to NickServ. They'll be told that their messages are bouncing.
	      +i (invisible)  	 This prevents you from appearing in global WHO/WHOIS by normal users, and hides which channels you are on. It is strongly recommended that you set this umode.
	      +I (block invite)  	 This umode prevents anybody from inviting you to a channel. Running with this option can be used to block invite flooding, but it also limits you to channels for which no invitation is required.
	      +w (see wallops)  	 This umode lets you see the wallops announcement system. Important network messages will be sent out via global notices; this is only for noncritical announcements and comments which may be of interest.
	      +b (channel ban)  	 Bans take one parameter, either in the form +b nick!user@host, or in the experimental form, +b nick!user@host!#channel. The wildcards * and ? are allowed, matching zero-or-more, and exactly-one characters respectively. The masks will be trimmed to fit the maximum allowable length for the relevant element, with wildcards added as appropriate to ensure that they still match.

	      Without a !#channel, the mask causes any matching user to be prohibited from sending to the channel, knocking, or joining. Having +v set on them on the channel overrides the prohibition on sending, while being invited overrides the prohibition on joining.

	      If the mask has a channel name specified and the channel has +F set, then in all situations where the user would previously have been told they could not join the channel, they will instead join the channel named in the ban mask, and be sent a 379 numeric describing the forward.
	      +c (color filter)  	 This cmode activates the colour filter for the channel. This filters out bold, underline, reverse video, beeps, mIRC colour codes, and ANSI escapes. Note that escape sequences will usually leave cruft sent to the channel, just without the escape characters themselves.
	      +d (realname ban) 	This mode takes one parameter, a mask which is matched against the so-called "Real Name" field each client supplies, and prevents any matching clients from sending to the channel or joining it. It accepts the standard * and ? wildcards.
	      +e (ban exemption) 	This mode takes one parameter of the form nick!user@host, with the usual wildcards, which overrides +b and +d bans for all clients it matches.
	      +f (forward on uninvited) 	This experimental feature is specified with some channel name #foo. When specified on a +i channel (invite-only), users who try to join the channel and are not in the invite-only exemption list (+I) are automatically sent to channel #foo. Clients receive a 379 numeric message which lists the original and the target channels.
	      +F (enable forwarding) 	freenode staff can use this mode to enable the experimental channel forwarding features.
	      +i (invite-only) 	No client can join this channel unless they are listed in the invite exemption list (+I).
	      +I (invite-only exemption) 	This mode takes a parameter of the form nick!user@host with the usual wildcards. When the channel is invite-only, clients which match entries in this list can join the channel whether invited or not.
	      +j (jupe channel) 	This mode is used by freenode staff to prevent a channel from being used.
	      +k (channel password) 	This mode sets up a channel password. To enter the channel, you must specify the password on your JOIN command.
	      +l (join limit) 	Specified with a numeric value, this mode limits the number of users who can join your channel.
	      +m (moderated) 	When a channel is set +m, only users with +o or +v on the channel can send to it.
	      +n (prevent external send) 	Users outside the channel may not send messages to it.
	      +p (deprecated) 	Traditionally, this option made a channel "private," i.e., users could see it on a channel listing as <prv> but could not see the channel name or the members. This option currently acts the same as +s (secret channel) and will be removed in a future version of the server.
	      +P (permanent channel) 	This mode is an experimental feature which currently may only be set by freenode staff. Once set, the channel will not be deleted when it becomes empty. Additionally, the +b, +e and +I lists have higher capacity to make channel forwarding easier. NOTE: In dancer-ircd 1.0, permanent channels can still be erased by catastrophic network failures.
	      +q (quiet user) 	This mode works like +b (ban user), but instead simply quiets the user. It is currently equivalent to a +b whose masked is prefaced by the percent sign (for example, "+b %foo" is equivalent to "+q foo").
	      +s (secret channel) 	This channel will not appear on channel lists or WHO or WHOIS output unless you are on it.

IRC-Codes:
367   ---->   :sterling.freenode.net 367 Lancelot_ #uhu *!*@*.*microsoft*.* Lancelot!~Lancelot@80-219-21-171.dclient.hispeed.ch 1079095453                     /* bannlist */
377   ---->   :genesis.GamesNET.net 377 Lancelot Z-Default 853 1078631865 :Last MOTD change information: Sat, 06 Mar 2004 19:57:45 -0800
368   ---->   :sterling.freenode.net 368 Lancelot_ #uhu :End of Channel Ban List
379   ---->   :sterling.freenode.net 379 Lancelot_ #openbsd #please_register :Forwarding to another channel
438   ---->   :calvino.freenode.net 438 people_ people :The hand of the deity is upon thee, thy nick may not change (#linux)       --> WHAT THE HELLLLLL!!!!! ????
477   ---->   :kornbluth.freenode.net 477 Lancelot #netwalker :[freenode-info] help freenode weed out clonebots, please register your IRC nick and auto-identify: http://freenode.net/faq.shtml#nicksetup

implement this modes:

[20:05]     -=MODE=-> Lancelot sets mode +p on Lancelot
[20:05]     -=MODE=-> Lancelot sets mode +L on Lancelot
[20:05]     -=MODE=-> Lancelot sets mode +x on Lancelot
[20:05]     -=MODE=-> Lancelot sets mode +n on Lancelot
[20:05]     -=MODE=-> Lancelot sets mode +e on Lancelot

[08:46]          ***> Rawtext: :network 468 nickname :Your username is invalid.
