Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/doc/master/master-3.2 b/doc/master/master-3.2
new file mode 100644
index 0000000..b55a931
--- /dev/null
+++ b/doc/master/master-3.2
@@ -0,0 +1,248 @@
+NAME
+ master for LPMud 3.2
+
+DESCRIPTION
+ This directory contains descriptions for the functions that
+ Amylaar's version of the LPC parser, expects to find in the
+ master object (similar to lfuns, but for the master object
+ only). The name of the master object is hardcoded in the
+ parser (to "secure/master").
+
+ The master is the gateway between the interpreter and the
+ mudlib to perform actions with mudlib specific effects. Calls
+ to the master by the interpreter have an automatic catch() in
+ effect.
+
+ Note that the master is loaded first of all objects. Thus you
+ shouldn't inherit an other object, nor is the compiler able to
+ search include files (read: they must be specified with full
+ path).
+
+ Amylaar says: actually, you can inherit, but the file will be
+ loaded then before the master, which isn't good for most
+ files.
+
+ A short survey of the things that happen at system startup
+ time:
+
+ The Initialisation functions are called after (re)loading the
+ master to establish the most basic operation parameters.
+
+ The initialisation of LPMud on startup follows this schedule:
+ - The interpreter evaluates the commandline options and
+ initializes itself.
+ - The master is loaded, and thus it's create() (!compat only) and
+ its reset() is called, though it's not much use, since
+ most of the important things won't work already.
+ - get_root_uid() is called. If the result is valid, it
+ becomes the masters uid and euid.
+ - get_bb_uid() is called.
+ - inaugurate_master() is called.
+ - flag() is called for each given '-f' commandline option.
+ - get_simul_efun() is called.
+ - define_include_dirs() is called.
+ - Preloading is done:
+ compat : The filenames of the objects are read from
+ INIT_FILE and the objects are loaded. Then
+ epilog() is called.
+ !compat: epilog() is called. If it returns an array of
+ strings, it is considered holding the filenames
+ of the objects to preload. They are then given
+ one at a time as argument to preload() which
+ does the actual preloading.
+ - The interpreter sets up the IP communication and enters
+ the backend loop.
+
+ If the master is reloaded during system operation, this
+ actions are taken:
+ - The master is loaded, and thus it's create() (!compat only) and
+ its reset() is called.
+ - Any auto-include string is cleared.
+ - get_root_uid() is called. If the result is valid, it becomes the
+ masters uid and euid.
+ - inaugurate_master() is called.
+
+ If the master was destructed, but couldn't be reloaded, the old
+ master object could be reactivated. In that case:
+ - reactivate_destructed_master() is called.
+ - inaugurate_master() is called.
+
+
+ Security hint: most of this functions are not useful to be
+ called directly from other objects and can be made private or
+ static. Unlike create(), these functions that are applied to
+ the master object are found by the interpreter even if not
+ publicly accessible.
+
+
+
+ A short reference to all expected master functions...
+ ----------------------------------------------------------------
+ Initialisation
+
+ void create () // !compat
+ Initialize the object. Not very useful, though.
+
+ void reset (int flag) // !native
+ void reset () // native
+ Initialize (compat only) or reset the object.
+
+ void inaugurate_master ()
+ Perform mudlib specific setup of the master.
+
+ void flag (string arg)
+ Evaluate an argument given as option '-f' to the driver.
+
+ string *define_include_dirs ()
+ Define where the include files are searched.
+
+ void epilog () // compat
+ string *epilog (int eflag) // !compat
+ Perform final actions before opening the system to users.
+ The semantics of this function differ for compat and !compat mode.
+
+ void preload (string file) // !compat
+ Preload a given object.
+
+ void external_master_reload ()
+ Called after a reload of the master on external request.
+
+ void reactivate_destructed_master (int removed)
+ Reactivate a formerly destructed master.
+
+ string|string * get_simul_efun ()
+ Load the simul_efun object and return one or more paths of it.
+
+ ----------------------------------------------------------------
+ Handling of user connections
+
+ object connect ()
+ Handle the request for a new connection.
+
+ void disconnect (object obj)
+ Handle the loss of an IP connection.
+
+ void remove_player (object user)
+ Remove a user object from the system.
+
+ -----------------------------------------------------------------
+ Runtime Support
+
+ object compile_object (string filename)
+ Compile an virtual object.
+
+ string get_wiz_name (string file)
+ Return the author of a file.
+
+ string object_name (object obj)
+ Return a printable name for an object.
+
+ mixed prepare_destruct (object obj)
+ Prepare the destruction of the given object.
+
+ void quota_demon (void)
+ Handle quotas in times of memory shortage.
+
+ void receive_udp (string host, string msg)
+ Handle a received IMP message.
+
+ void slow_shut_down (int minutes)
+ Schedule a shutdown for the near future.
+
+ void notify_shutdown ()
+ Notify the master about an immediate shutdown.
+
+ -----------------------------------------------------------------
+ Error Handling
+
+ void dangling_lfun_closure ()
+ Handle a dangling lfun-closure.
+
+ void log_error (string file, string err)
+ Announce a compiler-time error.
+
+ mixed heart_beat_error (object culprit, string err,
+ string prg, string curobj, int line)
+ Announce an error in the heart_beat() function.
+
+ void runtime_error (string err, string prg, string curobj, int line)
+ Announce a runtime error.
+
+ -----------------------------------------------------------------
+ Security and Permissions
+
+ int privilege_violation (string op, mixed who, mixed arg3, mixed arg4)
+ Validate the execution of a privileged operation.
+
+ int query_allow_shadow (object victim)
+ Validate a shadowing.
+
+ int query_player_level (string what)
+ Check if the user is of high enough level for several things.
+
+ int valid_exec (string name)
+ Validate the rebinding of an IP connection by usage of efun
+ exec().
+
+ int valid_query_snoop (object obj)
+ Validate if the snoopers of an object may be revealed by
+ usage of the efun query_snoop().
+
+ int valid_snoop (object snoopee, object snooper)
+ Validate the start/stop of a snoop.
+
+ ------------------------------------------------------------------
+ Userids and depending Security
+
+ string creator_file (mixed obj)
+ Return the name of the creator of an object.
+ This is called in every mode!
+
+ string get_root_uid () // !compat
+ Return the string to be used as root-uid.
+
+ string get_bb_uid() // !compat
+ Return the string to be used as root-uid.
+
+ int valid_seteuid (object obj, string neweuid) // !compat
+ Validate the change of an objects euid by efun seteuid().
+
+ int|string valid_read (string path, string euid, string fun, object caller)
+ int|string valid_write (string path, string euid, string fun, object caller)
+ Validate a reading/writing file operation.
+
+ -----------------------------------------------------------------
+ ed() Support
+
+ string make_path_absolute (string str)
+ Absolutize a relative filename given to the editor.
+
+ int save_ed_setup (object who, int code)
+ Save individual settings of ed for a wizard.
+
+ int retrieve_ed_setup (object who)
+ Retrieve individual settings of ed for a wizard.
+
+ string get_ed_buffer_save_object_name (string file)
+ Return a filename for the ed buffer to be saved into.
+
+ ----------------------------------------------------------------
+ parse_command() Support (!compat)
+
+ string *parse_command_id_list ()
+ Return generic singular ids.
+
+ string *parse_command_plural_id_list ()
+ Return generic plural ids.
+
+ string *parse_command_adjectiv_id_list ()
+ Return generic adjective ids.
+
+ string *parse_command_prepos_list ()
+ Return common prepositions.
+
+ string parse_command_all_word()
+ Return the one(!) 'all' word.
+
+SEE ALSO
+ master(M), efun(E), applied(A), concepts(C), driver(D), lpc(LPC)