ggGetUserDir returns a path to the home directory of the user executing
an application, whatever it may be on a given system. For example, on
unix systems it will be the contents of the HOME environment variable.
If no user home exists, a suitable temporary directory is found.
ggGetUserDir is threadsafe, but is not guaranteed to be safe
to use in a thread that may be cancelled during its execution.
It is also not guaranteed to be safe to use in special contexts such
as LibGG task handlers, signal handlers and asyncronous procedure calls.
RETURN VALUE
ggGetUserDir returns a NULL-terminated string holding the path the
the current user home directory. This string may be a reference to
memory belonging to OS facilities, and *must not* be freed or altered.