Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/doc/hook/telnet_neg b/doc/hook/telnet_neg
new file mode 100644
index 0000000..0f8b8c1
--- /dev/null
+++ b/doc/hook/telnet_neg
@@ -0,0 +1,72 @@
+SYNOPSIS
+ #include <sys/driver_hooks.h>
+
+ set_driver_hook(H_TELNET_NEG, value)
+
+ <value> being:
+
+ void|mixed <name>(int action, int option [, int * opts ] )
+ void|mixed <closure>(int action, int option [, int * opts ] )
+
+DESCRIPTION
+ Optional hook to specifiy how to perform a single telnet
+ negotiation. Hook setting may be any closure or a string. If
+ not set, most telnet options are rejected (read: only a very
+ minimal negotiation takes place).
+
+ The hook is called whenever the driver receives a demand for
+ option negotiation for any option the driver does not handle itself.
+ By default, the driver deals with the following options:
+ TELOPT_ECHO: Echo option
+ TELOPT_SGA: Suppress Go Ahead (nearly always on)
+ TELOPT_COMPRESS: Mud client compression protocol (obsolete)
+ TELOPT_COMPRESS2: Mud client compression protocol V2
+
+ For all other telnet options negotiations, this hook is called.
+
+ The hook has then to perform the negotiation using the efun
+ binary_message().
+
+ Alternatively, if H_NOECHO is set, this hook is called for
+ _all_ telnet data received.
+
+ If the setting is a string, it used as name of an lfun to call
+ in this_player(). Closures are just called, with unbound
+ lambda-closures being bound to this_player() prior to
+ execution.
+
+ The hook is called for a 'DO/DONT/WILL/WONT <opt>' with the action
+ (DO/DONT/...) as the first, and <opt> as the second argument.
+
+ For example:, if the driver receives the sequence
+
+ IAC SB <opt> <opts>...
+
+ followed by IAC SB/SE, the hook is called with 'SB' as first
+ argument, <opt> as second, and <opts> as an array of integers as
+ third argument.
+
+REMARKS
+ An incomplete list of telnet negotiations this hook is called
+ for includes the following:
+ SB: Suboption negotiation
+ TELOPT_LINEMODE: linemode
+ TELOPT_NAWS: window size
+ TELOPT_TTYPE: terminal type
+ TELOPT_TM: timing mark
+ TELOPT_NEWENV: remote environment variables
+ TELOPT_ENVIRON: remote environment variables
+ TELOPT_XDISPLOC: remote X display address
+ TELOPT_TSPEED: terminal speed
+ TELOPT_BINARY: binary data, needed for non-ASCII charsets
+ TELOPT_EOR: TinyFugue prompt marker (together with EOR)
+
+ TELOPT_MSP: Mud Sound Protocol
+ TELOPT_MXP: Mud Extension Protocol
+ TELOPT_MSSP: Mud Server Status Protocol
+ TELOPT_GMCP: Generic Mud Communication Protocol
+
+HISTORY
+
+SEE ALSO
+ hooks(C), telnet(C), no_echo(H)