profile \
fastbuf ff-binary ff-string ff-printf ff-unicode \
fb-file carefulio fb-mem fb-temp fb-mmap fb-limfd fb-buffer fb-grow fb-pool fb-atomic fb-param \
- str_ctype str_upper str_lower unicode-utf8 stkstring \
+ str_ctype str_upper str_lower unicode stkstring \
wildmatch wordsplit ctmatch patimatch patmatch regex \
prime primetable random timer randomkey \
bit-ffs bit-fls \
$(o)/lib/kmp-test: $(o)/lib/kmp-test.o $(LIBUCW) $(LIBCHARSET)
$(o)/lib/ipaccess-test: $(o)/lib/ipaccess-test.o $(LIBUCW)
-TESTS+=$(addprefix $(o)/lib/,regex.test unicode-utf8.test hash-test.test mempool.test stkstring.test \
+TESTS+=$(addprefix $(o)/lib/,regex.test unicode.test hash-test.test mempool.test stkstring.test \
slists.test kmp-test.test bbuf.test getopt.test fastbuf.test eltpool.test)
$(o)/lib/regex.test: $(o)/lib/regex-t
-$(o)/lib/unicode-utf8.test: $(o)/lib/unicode-utf8-t
+$(o)/lib/unicode.test: $(o)/lib/unicode-t
$(o)/lib/hash-test.test: $(o)/lib/hash-test
$(o)/lib/mempool.test: $(o)/lib/mempool-t $(o)/lib/mempool-fmt-t $(o)/lib/mempool-str-t
$(o)/lib/stkstring.test: $(o)/lib/stkstring-t
+++ /dev/null
-/*
- * UCW Library -- UTF-8 Functions
- *
- * (c) 1997--2004 Martin Mares <mj@ucw.cz>
- * (c) 2003 Robert Spalek <robert@ucw.cz>
- *
- * This software may be freely distributed and used according to the terms
- * of the GNU Lesser General Public License.
- */
-
-#include "lib/lib.h"
-#include "lib/unicode.h"
-
-uns
-utf8_strlen(const byte *str)
-{
- uns len = 0;
- while (*str)
- {
- UTF8_SKIP(str);
- len++;
- }
- return len;
-}
-
-uns
-utf8_strnlen(const byte *str, uns n)
-{
- uns len = 0;
- const byte *end = str + n;
- while (str < end)
- {
- UTF8_SKIP(str);
- len++;
- }
- return len;
-}
-
-#ifdef TEST
-#include <string.h>
-#include <stdio.h>
-int main(int argc, char **argv)
-{
- byte buf[256];
- if (argc > 1 && !strncmp(argv[1], "get", 3))
- {
- int f32 = !strcmp(argv[1], "get32");
- byte *p = buf;
- uns u;
- while (scanf("%x", &u) == 1)
- *p++ = u;
- *p = 0;
- p = buf;
- while (*p)
- {
- if (p != buf)
- putchar(' ');
- if (f32)
- GET_UTF8_32(p, u);
- else
- GET_UTF8(p, u);
- printf("%04x", u);
- }
- putchar('\n');
- }
- else if (argc > 1 && !strncmp(argv[1], "put", 3))
- {
- uns u, i=0;
- int f32 = !strcmp(argv[1], "put32");
- while (scanf("%x", &u) == 1)
- {
- byte *p = buf;
- if (f32)
- PUT_UTF8_32(p, u);
- else
- PUT_UTF8(p, u);
- *p = 0;
- for (p=buf; *p; p++)
- {
- if (i++)
- putchar(' ');
- printf("%02x", *p);
- }
- }
- putchar('\n');
- }
- else
- puts("?");
- return 0;
-}
-#endif
+++ /dev/null
-# Tests for the Unicode UTF-8 module
-
-Name: put1
-Run: ../obj/lib/unicode-utf8-t put
-In: 0041 0048 004f 004a
-Out: 41 48 4f 4a
-
-Name: put2
-Run: ../obj/lib/unicode-utf8-t put
-In: 00aa 01aa 02a5 05a5 0a5a 15a5 2a5a 5a5a a5a5
-Out: c2 aa c6 aa ca a5 d6 a5 e0 a9 9a e1 96 a5 e2 a9 9a e5 a9 9a ea 96 a5
-
-Name: get1
-Run: ../obj/lib/unicode-utf8-t get
-In: 41 48 4f 4a
-Out: 0041 0048 004f 004a
-
-Name: get2
-Run: ../obj/lib/unicode-utf8-t get
-In: c2 aa c6 aa ca a5 d6 a5 e0 a9 9a e1 96 a5 e2 a9 9a e5 a9 9a ea 96 a5
-Out: 00aa 01aa 02a5 05a5 0a5a 15a5 2a5a 5a5a a5a5
-
-Name: get3
-Run: ../obj/lib/unicode-utf8-t get
-In: 84 ff f9 f8 c2 aa 41
-Out: fffc fffc fffc fffc 00aa 0041
-
-Name: put32
-Run: ../obj/lib/unicode-utf8-t put32
-In: 15a5a 2a5a5 5a5a5 a5a5a 15a5a5 2a5a5a 5a5a5a a5a5a5 15a5a5a 2a5a5a5 5a5a5a5 a5a5a5a 15a5a5a5 2a5a5a5a 5a5a5a5a
-Out: f0 95 a9 9a f0 aa 96 a5 f1 9a 96 a5 f2 a5 a9 9a f5 9a 96 a5 f8 8a a5 a9 9a f8 96 a5 a9 9a f8 a9 9a 96 a5 f9 96 a5 a9 9a fa a9 9a 96 a5 fc 85 a9 9a 96 a5 fc 8a 96 a5 a9 9a fc 95 a9 9a 96 a5 fc aa 96 a5 a9 9a fd 9a 96 a5 a9 9a
-
-Name: get32a
-Run: ../obj/lib/unicode-utf8-t get32
-In: f0 95 a9 9a f0 aa 96 a5 f1 9a 96 a5 f2 a5 a9 9a f5 9a 96 a5 f8 8a a5 a9 9a f8 96 a5 a9 9a f8 a9 9a 96 a5 f9 96 a5 a9 9a fa a9 9a 96 a5 fc 85 a9 9a 96 a5 fc 8a 96 a5 a9 9a fc 95 a9 9a 96 a5 fc aa 96 a5 a9 9a fd 9a 96 a5 a9 9a
-Out: 15a5a 2a5a5 5a5a5 a5a5a 15a5a5 2a5a5a 5a5a5a a5a5a5 15a5a5a 2a5a5a5 5a5a5a5 a5a5a5a 15a5a5a5 2a5a5a5a 5a5a5a5a
-
-Name: get32b
-Run: ../obj/lib/unicode-utf8-t get32
-In: fe 83 81
-Out: fffc fffc fffc
--- /dev/null
+/*
+ * UCW Library -- UTF-8 Functions
+ *
+ * (c) 1997--2004 Martin Mares <mj@ucw.cz>
+ * (c) 2003 Robert Spalek <robert@ucw.cz>
+ *
+ * This software may be freely distributed and used according to the terms
+ * of the GNU Lesser General Public License.
+ */
+
+#include "lib/lib.h"
+#include "lib/unicode.h"
+
+uns
+utf8_strlen(const byte *str)
+{
+ uns len = 0;
+ while (*str)
+ {
+ UTF8_SKIP(str);
+ len++;
+ }
+ return len;
+}
+
+uns
+utf8_strnlen(const byte *str, uns n)
+{
+ uns len = 0;
+ const byte *end = str + n;
+ while (str < end)
+ {
+ UTF8_SKIP(str);
+ len++;
+ }
+ return len;
+}
+
+#ifdef TEST
+#include <string.h>
+#include <stdio.h>
+int main(int argc, char **argv)
+{
+ byte buf[256];
+ if (argc > 1 && !strncmp(argv[1], "get", 3))
+ {
+ int f32 = !strcmp(argv[1], "get32");
+ byte *p = buf;
+ uns u;
+ while (scanf("%x", &u) == 1)
+ *p++ = u;
+ *p = 0;
+ p = buf;
+ while (*p)
+ {
+ if (p != buf)
+ putchar(' ');
+ if (f32)
+ GET_UTF8_32(p, u);
+ else
+ GET_UTF8(p, u);
+ printf("%04x", u);
+ }
+ putchar('\n');
+ }
+ else if (argc > 1 && !strncmp(argv[1], "put", 3))
+ {
+ uns u, i=0;
+ int f32 = !strcmp(argv[1], "put32");
+ while (scanf("%x", &u) == 1)
+ {
+ byte *p = buf;
+ if (f32)
+ PUT_UTF8_32(p, u);
+ else
+ PUT_UTF8(p, u);
+ *p = 0;
+ for (p=buf; *p; p++)
+ {
+ if (i++)
+ putchar(' ');
+ printf("%02x", *p);
+ }
+ }
+ putchar('\n');
+ }
+ else
+ puts("?");
+ return 0;
+}
+#endif
--- /dev/null
+# Tests for the Unicode UTF-8 module
+
+Name: put1
+Run: ../obj/lib/unicode-utf8-t put
+In: 0041 0048 004f 004a
+Out: 41 48 4f 4a
+
+Name: put2
+Run: ../obj/lib/unicode-utf8-t put
+In: 00aa 01aa 02a5 05a5 0a5a 15a5 2a5a 5a5a a5a5
+Out: c2 aa c6 aa ca a5 d6 a5 e0 a9 9a e1 96 a5 e2 a9 9a e5 a9 9a ea 96 a5
+
+Name: get1
+Run: ../obj/lib/unicode-utf8-t get
+In: 41 48 4f 4a
+Out: 0041 0048 004f 004a
+
+Name: get2
+Run: ../obj/lib/unicode-utf8-t get
+In: c2 aa c6 aa ca a5 d6 a5 e0 a9 9a e1 96 a5 e2 a9 9a e5 a9 9a ea 96 a5
+Out: 00aa 01aa 02a5 05a5 0a5a 15a5 2a5a 5a5a a5a5
+
+Name: get3
+Run: ../obj/lib/unicode-utf8-t get
+In: 84 ff f9 f8 c2 aa 41
+Out: fffc fffc fffc fffc 00aa 0041
+
+Name: put32
+Run: ../obj/lib/unicode-utf8-t put32
+In: 15a5a 2a5a5 5a5a5 a5a5a 15a5a5 2a5a5a 5a5a5a a5a5a5 15a5a5a 2a5a5a5 5a5a5a5 a5a5a5a 15a5a5a5 2a5a5a5a 5a5a5a5a
+Out: f0 95 a9 9a f0 aa 96 a5 f1 9a 96 a5 f2 a5 a9 9a f5 9a 96 a5 f8 8a a5 a9 9a f8 96 a5 a9 9a f8 a9 9a 96 a5 f9 96 a5 a9 9a fa a9 9a 96 a5 fc 85 a9 9a 96 a5 fc 8a 96 a5 a9 9a fc 95 a9 9a 96 a5 fc aa 96 a5 a9 9a fd 9a 96 a5 a9 9a
+
+Name: get32a
+Run: ../obj/lib/unicode-utf8-t get32
+In: f0 95 a9 9a f0 aa 96 a5 f1 9a 96 a5 f2 a5 a9 9a f5 9a 96 a5 f8 8a a5 a9 9a f8 96 a5 a9 9a f8 a9 9a 96 a5 f9 96 a5 a9 9a fa a9 9a 96 a5 fc 85 a9 9a 96 a5 fc 8a 96 a5 a9 9a fc 95 a9 9a 96 a5 fc aa 96 a5 a9 9a fd 9a 96 a5 a9 9a
+Out: 15a5a 2a5a5 5a5a5 a5a5a 15a5a5 2a5a5a 5a5a5a a5a5a5 15a5a5a 2a5a5a5 5a5a5a5 a5a5a5a 15a5a5a5 2a5a5a5a 5a5a5a5a
+
+Name: get32b
+Run: ../obj/lib/unicode-utf8-t get32
+In: fe 83 81
+Out: fffc fffc fffc