Listing 2

struct ORJStringA
{
  size_t      len;        /* Number of chars in string       */
  char const  *ptr;       /* Pointer to first char in string */
};
struct ORJFieldA
{
  size_t      mbz0;       /* Reserved: must be 0 */
  ORJStringA  name;       /* The field name */
  ORJStringA  value;      /* The field value */
  void        *reserved0; /* Reserved: cannot be used by client code */
};
struct ORJRecordA
{
  size_t      mbz0;       /* Reserved: must be 0 */
  size_t      numFields;  /* The number of fields in the record */
  ORJFieldA   *fields;    /* The field array */
  void        *reserved0; /* Reserved: cannot be used by client code */
  ORJStringA  comment;    /* The record comment */
};