Mercurial > gnulib
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 |
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 } |