games written by Martin Read. Please refer to the manual pages for individual
subsystems to learn more.
+Please note that most of libmormegil's features only provide C++ APIs. These
+APIs are contained within the \fIlibmormegil\fP namespace and presented using
+header files with an extension of \fI.hh\fP. Where a C API is available for a
+libmormegil subsystem, it has an extension of \fI.h\fP.
+
+Requests for C API entry points to libmormegil's C++ APIs will be considered
+on a case-by-case basis. Currently, the only such entry points are those
+published in the \fIdice.h\fP header (see dice(3) for details).
+
.SH AUTHOR
Martin Read <mpread@chiark.greenend.org.uk>
.SH SEE ALSO
-dice(3), libmormegil::S20prng(3)
+dice(3), libmormegil::S20prng(3), libmormegil::abs(3), libmormegil::Appcfg(3),
+libmormegil::Coord(3), libmormegil::stlprintf(3), libmormegil::stlfgets(3),
+libmormegil::serialize(3)
--- /dev/null
+.TH "LIBMORMEGIL::APPCFG" 3 "February 25, 2011" "libmormegil Version 1.0" "libmormegil User Manual"
+.SH NAME
+libmormegil::Appcfg \- key-value application configuration storage
+
+.SH SYNOPSIS
+#include <libmormegil/Appcfg.hh>
+
+.SH DESCRIPTION
+The \fIlibmormegil::Appcfg\fP class provides a key-value store supporting distinct
+boolean, integer, and string types.
+
+A new \fIAppcfg\fP object has no registered variables.
+
+.SH RETURNS
+A return value of 0 indicates that no errors were encountered while reading
+from \fIfp\fP. A return value of -1 indicates that an error occurred while
+reading from \fIfp\fP. See the local documentation for the \fIfgetc\fP
+function for a list of possible \fIerrno\fP values in this case.
+
+.SH AUTHOR
+Martin Read
+
+.SH SEE ALSO
+libmormegil(3)
-.TH "LIBMORMEGIL::S20PRNG" 3 "October 10, 2010" "libmormegil Version 1.0" "libmormegil User Manual"
+.TH "LIBMORMEGIL::COORD" 3 "October 10, 2010" "libmormegil Version 1.0" "libmormegil User Manual"
.SH NAME
-libmormegil::basic_offset, libmormegil::basic_coord \- offsets and points on a plane
+libmormegil::basic_offset, libmormegil::basic_coord, libmormegil::Coord, libmormegil::Offset, libmormegil::Coord64, libmormegil::Offset64 \- offsets and points on a plane
.SH SYNOPSIS
#include <libmormegil/Coord.hh>
Typedefs \fIlibmormegil::Coord64\fR and \fIlibmormegil::Offset64\fR are provided
which use type \fIint64_t\fR as the template parameter.
-.SH CAVEATS
-
.SH AUTHOR
Martin Read <mpread@chiark.greenend.org.uk>
.SH SEE ALSO
-libmormegil(3), dice(3)
+libmormegil(3)
by \fIj\fP, rounded \fIup\fP (rather than down, as integer division behaves
by default).
-Its behaviour on floating-point types will not be as desired.
+Its behaviour is undefined when the / operator of type \fIT\fP does not behave
+like rounding-down integer division, or when \fIj\fP is negative, is undefined.
+
+.SH BUGS
+
+This function does not range-check its arguments and is not protected against
+run-time division by zero.
.SH AUTHOR
Martin Read
--- /dev/null
+.TH "LIBMORMEGIL::ISOTIME" 3 "March 27, 2011" "libmormegil Version 1.0" "libmormegil User Manual"
+.SH NAME
+libmormegil::isotime, get_iso_8601_time, libmormegil::get_iso_8601_time \- get ISO 8601 ordinal date
+.SH SYNOPSIS
+#include <libmormegil/isotime.h>
+
+extern "C" time_t get_iso_8601_time(char *buf, int bufsz);
+
+void libmormegil::get_iso_8601_time(std::string& dest);
+
+.SH DESCRIPTION
+The functions \fIget_iso_8601_time\fR and \fIlibmormegil::get_iso_8601_time\fR
+provide a string representing the current system time in ISO8601-compliant
+format, suitable for use as a somewhat less human-unreadable text timestamp than
+a simple integer-to-string conversion of a \fItime_t\fR value.
+
+.SH CAVEATS
+Correct operation of these functions depends on your platform's implementation
+of time(2) being aligned to GMT/TAI/UTC rather than local time. If time(2) on your
+system is aligned to local time, the timestamp strings generated by this function
+suite will be incorrect unless your time zone is GMT+0000 and does not apply
+DST.
+
+.SH AUTHOR
+Martin Read <mpread@chiark.greenend.org.uk>
+
+.SH SEE ALSO
+
+libmormegil(3), time(2), gmtime_r(3)
.SH NAME
libmormegil::serialize, libmormegil::deserialize \- offsets and points on a plane
.SH SYNOPSIS
+#include <stdio.h>
+
#include <libmormegil/serial.hh>
+int libmormegil::serialize(FILE *fp, const int64_t *data);
+
+int libmormegil::serialize(FILE *fp, const int32_t *data);
+
+int libmormegil::serialize(FILE *fp, const int16_t *data);
+
+int libmormegil::serialize(FILE *fp, const uint64_t *data);
+
+int libmormegil::serialize(FILE *fp, const uint32_t *data);
+
+int libmormegil::serialize(FILE *fp, const uint16_t *data);
+
+int libmormegil::serialize(FILE *fp, Coord const *data);
+
+int libmormegil::serialize(FILE *fp, Coord64 const *data);
+
+int libmormegil::serialize(FILE *fp, Offset const *data);
+
+int libmormegil::serialize(FILE *fp, Offset64 const *data);
+
+int libmormegil::deserialize(FILE *fp, int64_t *data);
+
+int libmormegil::deserialize(FILE *fp, int32_t *data);
+
+int libmormegil::deserialize(FILE *fp, int16_t *data);
+
+int libmormegil::deserialize(FILE *fp, uint64_t *data);
+
+int libmormegil::deserialize(FILE *fp, uint32_t *data);
+
+int libmormegil::deserialize(FILE *fp, uint16_t *data);
+
+int libmormegil::deserialize(FILE *fp, Coord *data);
+
+int libmormegil::deserialize(FILE *fp, Coord64 *data);
+
+int libmormegil::deserialize(FILE *fp, Offset *data);
+
+int libmormegil::deserialize(FILE *fp, Offset64 *data);
+
+
.SH DESCRIPTION
.I libmormegil::serialize
is a family of overloaded functions providing host-endianness-independent
.SH SEE ALSO
-libmormegil(3), dice(3)
+libmormegil(3), dice(3), libmormegil::Coord(3)