From: Martin Read Date: Thu, 22 Mar 2012 19:49:58 +0000 (+0000) Subject: Snapshotting X-Git-Url: http://git.blackswordsonics.com/?a=commitdiff_plain;h=refs%2Fremotes%2Forigin%2FHEAD;p=libmormegil Snapshotting --- diff --git a/man/dice.3 b/man/dice.3 index 411a456..9926059 100644 --- a/man/dice.3 +++ b/man/dice.3 @@ -6,15 +6,15 @@ dice, dice_setstate, dice_getstate \- simulate rolling of arbitrary dice #include -int dice(int count, int sides); +\fBint dice(int \fIcount\fP, int \fIsides\fP);\fR -void dice_setstate(const uint32_t *key, const uint32_t *nonce, const uint64_t *counter, const int *subcounter); +\fBvoid dice_setstate(const uint32_t *\fIkey\fP, const uint32_t *\fInonce\fP, const uint64_t *\fIcounter\fP, const int *\fIsubcounter\fP);\fR -void dice_getstate(uint32_t *key, uint32_t *nonce, uint64_t *counter, int *subcounter); +\fBvoid dice_getstate(uint32_t *\fIkey\fP, uint32_t *\fInonce\fP, uint64_t *\fIcounter\fP, int *\fIsubcounter\fP);\fR .SH DESCRIPTION .I dice -is a C-compatible wrapper around an instance of the libmormegil::S20prng +is a C-compatible wrapper around an instance of the \fIlibmormegil::S20prng\fP pseudorandom number generator. The \fIdice\fP function simulates rolling \fIcount\fP dice of \fIsides\fP @@ -29,9 +29,7 @@ rolls two six-sided dice, providing a number between 2 and 12 inclusive. The \fIdice_setstate\fP function uses the contents of the memory pointed to by \fIkey\fP, \fInonce\fP, \fIcounter\fP, and \fIsubcounter\fP to initialize the internal state of the libmormegil::S20prng object used by -the \fIdice\fP function. The data pointed to by these pointers should be -as follows: - +the \fIdice\fP function. The data pointed to by these pointers should be as follows: .IP "key" 16 An array of eight unsigned 32-bit integers to be used as a Salsa20/12 key. @@ -72,6 +70,7 @@ The value of \fIsides\fP or \fIcount\fP is negative. .IP \(bu 4 The product of \fIsides\fP and \fIcount\fP would overflow a signed int. +.PP Extremely large values of \fIsides\fP may cause delays due to the mechanism used for converting the libmormegil::S20prng output into a number between 0 and (\fIsides\fP - 1). diff --git a/man/libmormegil.3 b/man/libmormegil.3 index 9ee1cf0..d42fc90 100644 --- a/man/libmormegil.3 +++ b/man/libmormegil.3 @@ -2,7 +2,7 @@ .SH NAME libmormegil \- miscellaneous support routines for game development .SH SYNOPSIS -gcc foo.c -lmormegil +gcc \fIARGS\fP \fB-lmormegil\fP -o \fIPROGRAM-NAME\fP .SH DESCRIPTION .I libmormegil diff --git a/man/libmormegil::Points.3 b/man/libmormegil::Points.3 index 696db17..ad47039 100644 --- a/man/libmormegil::Points.3 +++ b/man/libmormegil::Points.3 @@ -4,23 +4,23 @@ libmormegil::Points \- tracker object for hit points or similar .SH SYNOPSIS #include -int32_t libmormegil::Points::gain(int32_t amount, libmormegil::Points::Gain_mode mode); +\fBint32_t libmormegil::Points::gain(int32_t \fIamount\fP, libmormegil::Points::Gain_mode \fImode\fP); -int32_t libmormegil::Points::lose(int32_t amount); +\fBint32_t libmormegil::Points::lose(int32_t \fIamount\fP); -int32_t libmormegil::Points::boost(int32_t amount); +\fBint32_t libmormegil::Points::boost(int32_t \fIamount\fP); -int32_t libmormegil::Points::restore(int32_t amount); +\fBint32_t libmormegil::Points::restore(int32_t \fIamount\fP); -int32_t libmormegil::Points::current() const; +\fBint32_t libmormegil::Points::current() const; -int32_t libmormegil::Points::maximum() const; +\fBint32_t libmormegil::Points::maximum() const; -void libmormegil::Points::force_current(int32_t c); +\fBvoid libmormegil::Points::force_current(int32_t \fIc\fP); -void libmormegil::Points::force_maximum(int32_t m); +\fBvoid libmormegil::Points::force_maximum(int32_t \fIm\fP); -void libmormegil::Points::Points(int32_t mv = 0, int32_t c = 0); +\fBvoid libmormegil::Points::Points(int32_t \fImv\fP = 0, int32_t \fIc\fP = 0); .SH DESCRIPTION .I libmormegil::Points diff --git a/man/libmormegil::S20prng.3 b/man/libmormegil::S20prng.3 index cf6f5cd..cfe8ec4 100644 --- a/man/libmormegil::S20prng.3 +++ b/man/libmormegil::S20prng.3 @@ -6,11 +6,11 @@ libmormegil::S20prng \- a pseudorandom number generator using Salsa20/12 #include -uint32_t libmormegil::S20prng::generate(); +\fBuint32_t libmormegil::S20prng::generate();\fR -void libmormegil::S20prng::initialize(const uint32_t *k, const uint32_t *n, const uint64_t *c, const int *s); +\fBvoid libmormegil::S20prng::initialize(const uint32_t *\fIk\fP, const uint32_t *\fIn\fP, const uint64_t *\fIc\fP, const int *\fIs\fP);\fR -void libmormegil::S20prng::extract_state(uint32_t *k, uint32_t *n, uint64_t *c, int *s); +\fBvoid libmormegil::S20prng::extract_state(uint32_t *\fIk\fP, uint32_t *\fIn\fP, uint64_t *\fIc\fP, int *\fIs\fP);\fR .SH DESCRIPTION .I libmormegil::S20prng @@ -45,7 +45,7 @@ generator.) .PP Applications which need to take a snapshot of the generator's internal state -for whatever reason should use the +for whatever reason should use the \fIextract_state\fP member function. Obtaining suitable initialization data for the generator is the application author's responsibility. See the file \fBexamples/S20prng-test.cc\fR in the diff --git a/man/libmormegil::abs.3 b/man/libmormegil::abs.3 index cd29f81..bb2c6ae 100644 --- a/man/libmormegil::abs.3 +++ b/man/libmormegil::abs.3 @@ -4,7 +4,7 @@ libmormegil::abs \- compute absolute value .SH SYNOPSIS #include -template T libmormegil::abs(const T& i); +\fBtemplate T libmormegil::abs(const T& \fIi\fP);\fR .SH DESCRIPTION .I libmormegil::abs diff --git a/man/libmormegil::divup.3 b/man/libmormegil::divup.3 index 76ac973..386d6a7 100644 --- a/man/libmormegil::divup.3 +++ b/man/libmormegil::divup.3 @@ -4,7 +4,7 @@ libmormegil::divup, \- divide and round up .SH SYNOPSIS #include -template T libmormegil::divup(const T& i, const T& j); +\fBtemplate T libmormegil::divup(const T& \fIi\fP, const T& \fIj\fP);\fR .SH DESCRIPTION The \fIlibmormegil::divup\fP function returns the value of \fIi\fP divided diff --git a/man/libmormegil::emit_chebyshev_spiral.3 b/man/libmormegil::emit_chebyshev_spiral.3 index 5439b60..dd45613 100644 --- a/man/libmormegil::emit_chebyshev_spiral.3 +++ b/man/libmormegil::emit_chebyshev_spiral.3 @@ -4,7 +4,7 @@ libmormegil::emit_chebyshev_spiral \- print out source and header files for a ch .SH SYNOPSIS #include -void libmormegil::emit_chebyshev_spiral(FILE *srcfile, FILE *hdrfile, unsigned int radius, const char *macrotag, const char *nmsp); +\fBvoid libmormegil::emit_chebyshev_spiral(FILE *\fIsrcfile\fP, FILE *\fIhdrfile\fP, unsigned int \fIradius\fP, const char *\fImacrotag\fP, const char *\fInmsp\fP);\fR .SH DESCRIPTION diff --git a/man/libmormegil::isotime.3 b/man/libmormegil::isotime.3 index 64d236d..f0e2295 100644 --- a/man/libmormegil::isotime.3 +++ b/man/libmormegil::isotime.3 @@ -4,9 +4,9 @@ libmormegil::isotime, get_iso_8601_time, libmormegil::get_iso_8601_time \- get I .SH SYNOPSIS #include -extern "C" time_t get_iso_8601_time(char *buf, int bufsz); +\fBextern "C" time_t get_iso_8601_time(char *\fIbuf\fP, int \fIbufsz\fP);\fR -void libmormegil::get_iso_8601_time(std::string& dest); +\fBvoid libmormegil::get_iso_8601_time(std::string& \fIdest\fP);\fR .SH DESCRIPTION The functions \fIget_iso_8601_time\fR and \fIlibmormegil::get_iso_8601_time\fR diff --git a/man/libmormegil::serialize.3 b/man/libmormegil::serialize.3 index 288c460..0457537 100644 --- a/man/libmormegil::serialize.3 +++ b/man/libmormegil::serialize.3 @@ -1,57 +1,104 @@ .TH "LIBMORMEGIL::SERIAL" 3 "October 10, 2010" "libmormegil Version 1.0" "libmormegil User Manual" .SH NAME -libmormegil::serialize, libmormegil::deserialize \- offsets and points on a plane +libmormegil::serialize, libmormegil::serialize_uc, libmormegil::deserialize, libmormegil::deserialize_uc \- offsets and points on a plane .SH SYNOPSIS #include #include -int libmormegil::serialize(FILE *fp, const int64_t *data); +\fBvoid libmormegil::serialize(FILE *\fIfp\fP, int64_t \fIdata\fP);\fR -int libmormegil::serialize(FILE *fp, const int32_t *data); +\fBvoid libmormegil::serialize(FILE *\fIfp\fP, int32_t \fIdata\fP);\fR -int libmormegil::serialize(FILE *fp, const int16_t *data); +\fBvoid libmormegil::serialize(FILE *\fIfp\fP, int16_t \fIdata\fP);\fR -int libmormegil::serialize(FILE *fp, const uint64_t *data); +\fBvoid libmormegil::serialize(FILE *\fIfp\fP, uint64_t \fIdata\fP);\fR -int libmormegil::serialize(FILE *fp, const uint32_t *data); +\fBvoid libmormegil::serialize(FILE *\fIfp\fP, uint32_t \fIdata\fP);\fR -int libmormegil::serialize(FILE *fp, const uint16_t *data); +\fBvoid libmormegil::serialize(FILE *\fIfp\fP, uint16_t \fIdata\fP);\fR -int libmormegil::serialize(FILE *fp, Coord const *data); +\fBvoid libmormegil::serialize(FILE *\fIfp\fP, Coord const& \fIdata\fP);\fR -int libmormegil::serialize(FILE *fp, Coord64 const *data); +\fBvoid libmormegil::serialize(FILE *\fIfp\fP, Coord64 const& \fIdata\fP);\fR -int libmormegil::serialize(FILE *fp, Offset const *data); +\fBvoid libmormegil::serialize(FILE *\fIfp\fP, Offset const& \fIdata\fP);\fR -int libmormegil::serialize(FILE *fp, Offset64 const *data); +\fBvoid libmormegil::serialize(FILE *\fIfp\fP, Offset64 const& \fIdata\fP);\fR -int libmormegil::deserialize(FILE *fp, int64_t *data); +\fBvoid libmormegil::deserialize(FILE *\fIfp\fP, int64_t *\fIdata\fP);\fR -int libmormegil::deserialize(FILE *fp, int32_t *data); +\fBvoid libmormegil::deserialize(FILE *\fIfp\fP, int32_t *\fIdata\fP);\fR -int libmormegil::deserialize(FILE *fp, int16_t *data); +\fBvoid libmormegil::deserialize(FILE *\fIfp\fP, int16_t *\fIdata\fP);\fR -int libmormegil::deserialize(FILE *fp, uint64_t *data); +\fBvoid libmormegil::deserialize(FILE *\fIfp\fP, uint64_t *\fIdata\fP);\fR -int libmormegil::deserialize(FILE *fp, uint32_t *data); +\fBvoid libmormegil::deserialize(FILE *\fIfp\fP, uint32_t *\fIdata\fP);\fR -int libmormegil::deserialize(FILE *fp, uint16_t *data); +\fBvoid libmormegil::deserialize(FILE *\fIfp\fP, uint16_t *\fIdata\fP);\fR -int libmormegil::deserialize(FILE *fp, Coord *data); +\fBvoid libmormegil::deserialize(FILE *\fIfp\fP, Coord *\fIdata\fP);\fR -int libmormegil::deserialize(FILE *fp, Coord64 *data); +\fBvoid libmormegil::deserialize(FILE *\fIfp\fP, Coord64 *\fIdata\fP);\fR -int libmormegil::deserialize(FILE *fp, Offset *data); +\fBvoid libmormegil::deserialize(FILE *\fIfp\fP, Offset *\fIdata\fP);\fR -int libmormegil::deserialize(FILE *fp, Offset64 *data); +\fBvoid libmormegil::deserialize(FILE *\fIfp\fP, Offset64 *\fIdata\fP);\fR +\fBint libmormegil::serialize_uc(FILE *\fIfp\fP, int64_t \fIdata\fP);\fR + +\fBint libmormegil::serialize_uc(FILE *\fIfp\fP, int32_t \fIdata\fP);\fR + +\fBint libmormegil::serialize_uc(FILE *\fIfp\fP, int16_t \fIdata\fP);\fR + +\fBint libmormegil::serialize_uc(FILE *\fIfp\fP, uint64_t \fIdata\fP);\fR + +\fBint libmormegil::serialize_uc(FILE *\fIfp\fP, uint32_t \fIdata\fP);\fR + +\fBint libmormegil::serialize_uc(FILE *\fIfp\fP, uint16_t \fIdata\fP);\fR + +\fBint libmormegil::serialize_uc(FILE *\fIfp\fP, Coord const& \fIdata\fP);\fR + +\fBint libmormegil::serialize_uc(FILE *\fIfp\fP, Coord64 const& \fIdata\fP);\fR + +\fBint libmormegil::serialize_uc(FILE *\fIfp\fP, Offset const& \fIdata\fP);\fR + +\fBint libmormegil::serialize_uc(FILE *\fIfp\fP, Offset64 const& \fIdata\fP);\fR + +\fBint libmormegil::deserialize_uc(FILE *\fIfp\fP, int64_t *\fIdata\fP);\fR + +\fBint libmormegil::deserialize_uc(FILE *\fIfp\fP, int32_t *\fIdata\fP);\fR + +\fBint libmormegil::deserialize_uc(FILE *\fIfp\fP, int16_t *\fIdata\fP);\fR + +\fBint libmormegil::deserialize_uc(FILE *\fIfp\fP, uint64_t *\fIdata\fP);\fR + +\fBint libmormegil::deserialize_uc(FILE *\fIfp\fP, uint32_t *\fIdata\fP);\fR + +\fBint libmormegil::deserialize_uc(FILE *\fIfp\fP, uint16_t *\fIdata\fP);\fR + +\fBint libmormegil::deserialize_uc(FILE *\fIfp\fP, Coord *\fIdata\fP);\fR + +\fBint libmormegil::deserialize_uc(FILE *\fIfp\fP, Coord64 *\fIdata\fP);\fR + +\fBint libmormegil::deserialize_uc(FILE *\fIfp\fP, Offset *\fIdata\fP);\fR + +\fBint libmormegil::deserialize_uc(FILE *\fIfp\fP, Offset64 *\fIdata\fP);\fR .SH DESCRIPTION .I libmormegil::serialize is a family of overloaded functions providing host-endianness-independent serialization for basic integer types and the coordinate/offset types provided -in \fIlibmormegil/Coord.hh\fP +in <\fIlibmormegil/Coord.hh\fP>. The serialized form of the data is in +big-endian form. + +.SH RETURN VALUE +The \fI_uc\fP forms provide the return value of the \fIfread()\fP or \fIfwrite()\fP +call used to write the data to the stream pointed to by \fIfp\fP. + +.SH EXCEPTIONS +In the event of an I/O error, the unsuffixed forms will throw an \fIint\fP. This \fIint\fP will contain the value of \fIerrno\fP after the failed \fIchecked_fread()\fP or \fIchecked_fwrite()\fP call. .SH CAVEATS @@ -62,4 +109,4 @@ Martin Read .SH SEE ALSO -libmormegil(3), dice(3), libmormegil::Coord(3) +libmormegil(3), dice(3), libmormegil::Coord(3), libmormegil::checked_fread(3), libmormegil::checked_fwrite(3), stdio(1) diff --git a/man/libmormegil::sign.3 b/man/libmormegil::sign.3 index 5dcc2a4..819e2d4 100644 --- a/man/libmormegil::sign.3 +++ b/man/libmormegil::sign.3 @@ -4,7 +4,7 @@ libmormegil::sign \- compute absolute value .SH SYNOPSIS #include -template T libmormegil::sign(const T& orig); +\fBtemplate T libmormegil::sign(const T& \fIorig\fP);\fR .SH DESCRIPTION .I libmormegil::sign @@ -13,6 +13,10 @@ is a naively written template for obtaining the sign of \fIorig\fP. .SH RETURNS 1 if \fIorig\fP is positive, 0 if \fIorig\fP is 0, -1 if orig is negative. +.SH NOTES + +The <\fIlibmormegil/Coord.hh\fP> header file includes template specializations of this function for the \fIlibmormegil::Coord\fP, \fIlibmormegil::Offset\fP, \fIlibmormegil::Coord64\fP, and \fIlibmormegil::Offset64\fP types. + .SH CAVEATS Implemented as naively as possible. Exists because does not diff --git a/man/libmormegil::stlfgets.3 b/man/libmormegil::stlfgets.3 index 2882d06..1b7edaf 100644 --- a/man/libmormegil::stlfgets.3 +++ b/man/libmormegil::stlfgets.3 @@ -4,13 +4,11 @@ libmormegil::stlfgets, libmormegil::stlwfgets \- fgets-alikes for std::string .SH SYNOPSIS #include -int libmormegil::stlfgets(std::string& str, size_t size_suggest, - FILE *fp, size_t hard_size); +\fBint libmormegil::stlfgets(std::string& \fIstr\fP, size_t \fIsize_suggest\fP, FILE *fp, size_t hard_size); #include -int libmormegil::stlwfgets(std::wstring& str, size_t size_suggest, - FILE *fp, size_t hard_size); +int libmormegil::stlwfgets(std::wstring& \fIstr\fP, size_t \fIsize_suggest\fP = 128, FILE *\fIfp\fP, size_t \fIhard_size = 0x7fffffff\fP);\fR .SH DESCRIPTION The \fIlibmormegil::stlfgets\fP function clears the contents of \fIstr\fP, diff --git a/man/libmormegil::stlprintf.3 b/man/libmormegil::stlprintf.3 index b5e0358..e576cd5 100644 --- a/man/libmormegil::stlprintf.3 +++ b/man/libmormegil::stlprintf.3 @@ -2,17 +2,21 @@ .SH NAME libmormegil::stlprintf, libmormegil::vstlprintf, libmormegil::stlwprintf, libmormegil::vstlwprintf \- (v)s(w)printf-alikes for std::string .SH SYNOPSIS +#include + +#include + #include -std::string libmormegil::vstlprintf(const char *fmt, va_list args); +\fBstd::string libmormegil::vstlprintf(const char *\fIfmt\fP, va_list \fIargs\fP);\fR -std::string libmormegil::stlprintf(const char *fmt, ...); +\fBstd::string libmormegil::stlprintf(const char *\fIfmt\fP, ...);\fR #include -std::string libmormegil::vstlwprintf(const char *fmt, va_list args); +\fBstd::wstring libmormegil::vstlwprintf(const char *\fIfmt\fP, va_list \fIargs\fP);\fR -std::string libmormegil::stlwprintf(const char *fmt, ...); +\fBstd::wstring libmormegil::stlwprintf(const char *\fIfmt\fP, ...);\fR .SH DESCRIPTION The \fIlibmormegil::stlprintf\fP and \fIlibmormegil::vstlprintf\fP functions diff --git a/man/libmormegil::tagify.3 b/man/libmormegil::tagify.3 index 3398140..a080e42 100644 --- a/man/libmormegil::tagify.3 +++ b/man/libmormegil::tagify.3 @@ -4,7 +4,7 @@ libmormegil::tagify \- generate a "tag" string from a name and a prefix .SH SYNOPSIS #include -std::string * libmormegil::tagify(const char *name, const char *prefix); +\fBstd::string * libmormegil::tagify(const char *\fIname\fP, const char *\fIprefix\fP);\fR .SH DESCRIPTION diff --git a/version.mk b/version.mk index 910efd0..5db7e90 100644 --- a/version.mk +++ b/version.mk @@ -1,3 +1,3 @@ MAJOR_VER=1 -MINOR_VER=0 -COMPAT_DEPTH=0 +MINOR_VER=1 +PATCH_VER=0