annotate tests/unigbrk/test-uc-grapheme-breaks.c @ 40155:84fd38f4932c

tests: Fix some "unused variable" warnings. * tests/test-fts.c (fts_dealloc): Remove unused variable. * tests/unigbrk/test-uc-grapheme-breaks.c (main): Likewise. * tests/test-striconveh.c (main): Move some variable into the '#if HAVE_ICONV'. * tests/test-striconveha.c (main): Likewise. * tests/uniconv/test-u8-conv-from-enc.c (main): Likewise. * tests/uniconv/test-u16-conv-from-enc.c (main): Likewise. * tests/uniconv/test-u32-conv-from-enc.c (main): Likewise. * tests/uniconv/test-u8-conv-to-enc.c (main): Likewise. * tests/uniconv/test-u16-conv-to-enc.c (main): Likewise. * tests/uniconv/test-u32-conv-to-enc.c (main): Likewise. * tests/uniconv/test-u8-strconv-from-enc.c (main): Likewise. * tests/uniconv/test-u16-strconv-from-enc.c (main): Likewise. * tests/uniconv/test-u32-strconv-from-enc.c (main): Likewise. * tests/uniconv/test-u8-strconv-to-enc.c (main): Likewise. * tests/uniconv/test-u16-strconv-to-enc.c (main): Likewise. * tests/uniconv/test-u32-strconv-to-enc.c (main): Likewise. * tests/test-tsearch.c (main): Move some variable into the '#if HAVE_INITSTATE'.
author Bruno Haible <bruno@clisp.org>
date Sun, 27 Jan 2019 12:24:47 +0100
parents b06060465f09
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19452
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
1 /* Grapheme cluster break function test.
40057
b06060465f09 maint: Run 'make update-copyright'
Paul Eggert <eggert@cs.ucla.edu>
parents: 19484
diff changeset
2 Copyright (C) 2010-2019 Free Software Foundation, Inc.
19452
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
3
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
4 This program is free software: you can redistribute it and/or modify it
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
5 under the terms of the GNU Lesser General Public License as published
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
6 by the Free Software Foundation; either version 3 of the License, or
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
7 (at your option) any later version.
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
8
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
9 This program is distributed in the hope that it will be useful,
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
12 Lesser General Public License for more details.
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
13
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
14 You should have received a copy of the GNU Lesser General Public License
19461
c1cbd8206d4b all: Replace more http URLs by https URLs.
Bruno Haible <bruno@clisp.org>
parents: 19452
diff changeset
15 along with this program. If not, see <https://www.gnu.org/licenses/>. */
19452
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
16
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
17 /* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010. */
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
18
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
19 #include <config.h>
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
20
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
21 /* Specification. */
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
22 #include <unigbrk.h>
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
23
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
24 #include <stdio.h>
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
25 #include <stdlib.h>
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
26 #include <string.h>
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
27
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
28 #include "macros.h"
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
29
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
30 static const char *
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
31 graphemebreakproperty_to_string (int gbp)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
32 {
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
33 printf ("%d\n", gbp);
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
34 switch (gbp)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
35 {
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
36 #define CASE(VALUE) case GBP_##VALUE: return #VALUE;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
37 CASE(OTHER)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
38 CASE(CR)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
39 CASE(LF)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
40 CASE(CONTROL)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
41 CASE(EXTEND)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
42 CASE(PREPEND)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
43 CASE(SPACINGMARK)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
44 CASE(L)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
45 CASE(V)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
46 CASE(T)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
47 CASE(LV)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
48 CASE(LVT)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
49 CASE(RI)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
50 CASE(ZWJ)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
51 CASE(EB)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
52 CASE(EM)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
53 CASE(GAZ)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
54 CASE(EBG)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
55 }
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
56 abort ();
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
57 }
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
58
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
59 static void
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
60 test_uc_grapheme_breaks (const char *expected, ucs4_t *s, size_t n,
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
61 const char *filename, int lineno)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
62 {
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
63 char breaks[16];
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
64 size_t i;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
65
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
66 ASSERT (n <= 16);
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
67
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
68 uc_grapheme_breaks (s, n, breaks);
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
69 for (i = 0; i < n; i++)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
70 if (breaks[i] != (expected[i] == '#'))
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
71 {
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
72 size_t j;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
73
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
74 fprintf (stderr, "wrong grapheme breaks:\n");
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
75
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
76 fprintf (stderr, " input:");
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
77 for (j = 0; j < n; j++)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
78 fprintf (stderr, " %02x", s[j]);
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
79 putc ('\n', stderr);
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
80
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
81 fprintf (stderr, "expected:");
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
82 for (j = 0; j < n; j++)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
83 fprintf (stderr, " %d", expected[j] == '#');
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
84 putc ('\n', stderr);
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
85
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
86 fprintf (stderr, " actual:");
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
87 for (j = 0; j < n; j++)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
88 fprintf (stderr, " %d", breaks[j]);
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
89 putc ('\n', stderr);
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
90
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
91 abort ();
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
92 }
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
93 }
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
94
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
95 int
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
96 main (int argc, char *argv[])
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
97 {
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
98 const char *filename;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
99 char line[1024];
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
100 int exit_code;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
101 FILE *stream;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
102 int lineno;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
103
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
104 if (argc != 2)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
105 {
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
106 fprintf (stderr, "usage: %s FILENAME\n"
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
107 "where FILENAME is the location of the GraphemeBreakTest.txt\n"
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
108 "test file.\n", argv[0]);
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
109 exit (1);
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
110 }
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
111
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
112 filename = argv[1];
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
113 stream = fopen (filename, "r");
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
114 if (stream == NULL)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
115 {
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
116 fprintf (stderr, "error during fopen of '%s'\n", filename);
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
117 exit (1);
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
118 }
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
119
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
120 exit_code = 0;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
121 lineno = 0;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
122 while (fgets (line, sizeof line, stream))
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
123 {
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
124 char *comment;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
125 const char *p;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
126 ucs4_t s[16];
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
127 char breaks[16];
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
128 size_t i = 0;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
129
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
130 lineno++;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
131
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
132 comment = strchr (line, '#');
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
133 if (comment != NULL)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
134 *comment = '\0';
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
135 if (line[strspn (line, " \t\r\n")] == '\0')
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
136 continue;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
137
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
138 s[0] = 0;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
139 p = line;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
140 do
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
141 {
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
142 p += strspn (p, " \t\r\n");
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
143 if (!strncmp (p, "\303\267" /* ÷ */, 2))
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
144 {
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
145 breaks[i] = '#';
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
146 p += 2;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
147 }
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
148 else if (!strncmp (p, "\303\227" /* × */, 2))
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
149 {
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
150 breaks[i] = '_';
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
151 p += 2;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
152 }
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
153 else
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
154 {
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
155 fprintf (stderr, "%s:%d.%d: syntax error expecting '÷' or '×'\n",
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
156 filename, lineno, (int) (p - line + 1));
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
157 exit (1);
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
158 }
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
159
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
160 p += strspn (p, " \t\r\n");
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
161 if (*p == '\0')
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
162 s[i] = 0;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
163 else
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
164 {
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
165 unsigned int next_int;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
166 int n;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
167
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
168 if (sscanf (p, "%x%n", &next_int, &n) != 1)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
169 {
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
170 fprintf (stderr, "%s:%d.%d: syntax error at '%s' "
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
171 "expecting hexadecimal Unicode code point number\n",
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
172 filename, lineno, (int) (p - line + 1), p);
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
173 exit (1);
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
174 }
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
175 p += n;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
176
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
177 s[i] = next_int;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
178 }
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
179 p += strspn (p, " \t\r\n");
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
180 i++;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
181 }
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
182 while (*p != '\0');
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
183
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
184 if (i > 0)
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
185 test_uc_grapheme_breaks (breaks, s, i, filename, lineno);
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
186 }
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
187
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
188 return exit_code;
4c0b38aac75f libunistring: update to Unicode 9.0.0
Daiki Ueno <ueno@gnu.org>
parents:
diff changeset
189 }