Documentation update from Driver sources

Change-Id: Ide409fb7a65ec5fefaccdcc821705d80af10e343
diff --git a/doc/LPC/functions b/doc/LPC/functions
index 50c39a0..06949ea 100644
--- a/doc/LPC/functions
+++ b/doc/LPC/functions
@@ -33,11 +33,19 @@
           - name is the name of the function, e.g. "short", or "Nice_Try",
               under which it is made known.
           - <arguments> is a list of variable definitions in the
-              normal '<type> <name>' style, separated by comma.
+              normal '<type> <name> = <default value>' style, separated
+              by comma.
               Examples: () : no argument taken
                         (int a) : takes on integer argument
                         (mixed a, object *b): takes two arguments, one
                            arbitrary type, one array of objects.
+                        (int a = 42) : takes zero or one integer argument.
+                           if none is given, 42 is used instead.
+              If default values are given, they must be given for all
+              following arguments except a varargs argument. If a function
+              has a prototype, the default values should be specified
+              there instead of the definition (otherwise it might not
+              be known that these arguments are optional).
           - { statements... } defines the code for this function. This
               is a normal block (see block(LPC)) and as such can define
               its own local variables.
@@ -169,6 +177,9 @@
         function inherited at all, the statement will just return
         an empty array.
 
+HISTORY
+        LDMud 3.6.4 introduced default values for function arguments.
+
 SEE ALSO
         types(LPC), modifiers(LPC), varargs(LPC), references(LPC),
         call_other(E), simul_efun(C), call_out(E)