+cdef extern from 'mLib/versioncmp.h':
+ int _versioncmp "versioncmp" (char *va, char *vb)
+
+###--------------------------------------------------------------------------
+### Binary encoding functions.
+
+cdef extern from 'mLib/codec.h':
+ ctypedef struct codec
+ ctypedef struct codec_class:
+ char *name
+ codec *(*encoder)(unsigned f, char *ind, unsigned max)
+ codec *(*decoder)(unsigned f)
+ ctypedef struct codec_ops:
+ codec_class *c
+ int (*code)(codec *c, const void *p, size_t, dstr *d)
+ void (*destroy)(codec *c)
+ ctypedef struct codec:
+ codec_ops *ops
+ enum:
+ _CDCF_LOWERC "CDCF_LOWERC"
+ _CDCF_IGNCASE "CDCF_IGNCASE"
+ _CDCF_NOEQPAD "CDCF_NOEQPAD"
+ _CDCF_IGNEQPAD "CDCF_IGNEQPAD"
+ _CDCF_IGNEQMID "CDCF_IGNEQMID"
+ _CDCF_IGNZPAD "CDCF_IGNZPAD"
+ _CDCF_IGNNEWL "CDCF_IGNNEWL"
+ _CDCF_IGNSPC "CDCF_IGNSPC"
+ _CDCF_IGNINVCH "CDCF_IGNINVCH"
+ _CDCF_IGNJUNK "CDCF_IGNJUNK"
+ enum:
+ _CDCERR_OK "CDCERR_OK"
+ _CDCERR_INVCH "CDCERR_INVCH"
+ _CDCERR_INVEQPAD "CDCERR_INVEQPAD"
+ _CDCERR_INVZPAD "CDCERR_INVZPAD"
+ char *_codec_strerror "codec_strerror" (int err)
+
+###--------------------------------------------------------------------------
+### Form-urlencoding functions.
+
+cdef extern from 'mLib/url.h':
+ struct url_ectx:
+ unsigned f
+ struct url_dctx:
+ char *p
+ unsigned f
+ enum:
+ URLF_STRICT
+ URLF_LAX
+ URLF_SEMI
+ void url_initenc(url_ectx *ctx)
+ void url_enc(url_ectx *ctx, dstr *d, char *name, char *value)
+ void url_initdec(url_dctx *ctx, char *p)
+ int url_dec(url_dctx *ctx, dstr *n, dstr *v)
+
+###--------------------------------------------------------------------------
+### Atom stuff.
+
+## Atoms.
+##
+## Partly written in `real' C.