1 /* Copyright (c) 1998-2003 Thai Open Source Software Center Ltd
2 See the file COPYING for copying permission.
7 #ifdef HAVE_EXPAT_CONFIG_H
8 #include <expat_config.h>
10 #include "minicheck.h"
20 xmlstrlen(const XML_Char *s)
31 CharData_Init(CharData *storage)
33 assert(storage != NULL);
38 CharData_AppendString(CharData *storage, const char *s)
40 int maxchars = sizeof(storage->data) / sizeof(storage->data[0]);
45 if (storage->count < 0)
47 if ((len + storage->count) > maxchars) {
48 len = (maxchars - storage->count);
50 if (len + storage->count < (int)sizeof(storage->data)) {
51 memcpy(storage->data + storage->count, s, len);
52 storage->count += len;
57 CharData_AppendXMLChars(CharData *storage, const XML_Char *s, int len)
61 assert(storage != NULL);
63 maxchars = sizeof(storage->data) / sizeof(storage->data[0]);
64 if (storage->count < 0)
68 if ((len + storage->count) > maxchars) {
69 len = (maxchars - storage->count);
71 if (len + storage->count < (int)sizeof(storage->data)) {
72 memcpy(storage->data + storage->count, s,
73 len * sizeof(storage->data[0]));
74 storage->count += len;
79 CharData_CheckString(CharData *storage, const char *expected)
85 assert(storage != NULL);
86 assert(expected != NULL);
87 count = (storage->count < 0) ? 0 : storage->count;
88 len = strlen(expected);
90 if (sizeof(XML_Char) == 1)
91 sprintf(buffer, "wrong number of data characters:"
92 " got %d, expected %d:\n%s", count, len, storage->data);
95 "wrong number of data characters: got %d, expected %d",
100 if (memcmp(expected, storage->data, len) != 0) {
101 fail("got bad data bytes");
108 CharData_CheckXMLChars(CharData *storage, const XML_Char *expected)
111 int len = xmlstrlen(expected);
114 assert(storage != NULL);
115 count = (storage->count < 0) ? 0 : storage->count;
117 sprintf(buffer, "wrong number of data characters: got %d, expected %d",
122 if (memcmp(expected, storage->data, len * sizeof(storage->data[0])) != 0) {
123 fail("got bad data bytes");