1#
2#                           TERMS AND CONDITIONS
3#                                   FOR
4#                         OPEN SOURCE CODE LICENSE
5#                               Version 1.1
6#
7# Japan Registry Services Co., Ltd. ("JPRS"), a Japanese corporation
8# having its head office at Chiyoda First Bldg. East 13F 3-8-1 Nishi-Kanda,
9# Chiyoda-ku, Tokyo 101-0065, Japan, grants you the license for open source
10# code specified in EXHIBIT A the "Code" subject to the following Terms and
11# Conditions ("OSCL").
12#
13# 1. License Grant.
14#   JPRS hereby grants you a worldwide, royalty-free, non-exclusive
15#   license, subject to third party intellectual property claims:
16#   (a) under intellectual property rights (other than patent or
17#       trademark) licensable by JPRS to use, reproduce, modify, display,
18#       perform, sublicense and distribute the Code (or portions thereof)
19#       with or without modifications, and/or as part of a derivative work;
20#       or
21#   (b) under claims of the infringement through the making, using,
22#       offering to sell and/or otherwise disposing the JPRS Revised Code
23#       (or portions thereof);
24#   (c) the licenses granted in this Section 1(a) and (b) are effective on
25#       the date JPRS first distributes the Code to you under the terms of
26#       this OSCL;
27#   (d) Notwithstanding the above stated terms, no patent license is
28#       granted:
29#       1)  for a code that you delete from the Code;
30#       2)  separate from the Code; or
31#       3)  for infringements caused by:
32#            i) modification of the Code; or
33#           ii) combination of the Code with other software or devices.
34#
35# 2. Consents.
36#   You agree that:
37#   (a) you must include a copy of this OSCL and the notice set forth in
38#       EXHIBIT A with every copy of the Code you distribute;
39#   (b) you must include a copy of this OSCL and the notice set forth in
40#       EXHIBIT A with every copy of binary form of the Code in the
41#       documentation and/or other materials provided with the distribution;
42#   (c) you may not offer or impose any terms on any source code version
43#       that alters or restricts the applicable version of this OSCL or
44#       the recipients' rights hereunder.
45#   (d) If the terms and conditions are set forth in EXHIBIT A, you must
46#       comply with those terms and conditions.
47#
48# 3. Proprietary Information.
49#   All trademarks, service marks, patents, copyrights, trade secrets, and
50#   other proprietary rights in or related to the Code are and will remain
51#   the exclusive property of JPRS or its licensors, whether or not
52#   specifically recognized or perfected under local law except specified
53#   in this OSCL; provided however you agree and understand that the JPRS
54#   name may not be used to endorse or promote this Code without prior
55#   written approval of JPRS.
56#
57# 4. WARRANTY DISCLAIMER.
58#   JPRS MAKES NO REPRESENTATIONS AND WARRANTIES REGARDING THE USE OF THE
59#   CODE, NOR DOES JPRS MAKE ANY REPRESENTATIONS THAT THE CODE WILL BECOME
60#   COMMERCIALLY AVAILABLE. JPRS, ITS AFFILIATES, AND ITS SUPPLIERS DO NOT
61#   WARRANT OR REPRESENT THAT THE CODE IS FREE OF ERRORS OR THAT THE CODE
62#   IS SUITABLE FOR TRANSLATION AND/OR LOCALIZATION. THE CODE IS PROVIDED
63#   ON AN "AS IS" BASIS AND JPRS AND ITS SUPPLIERS HAVE NO OBLIGATION TO
64#   CORRECT ERRORS OR TO SUPPORT THE CODE UNDER THIS OSCL FOR ANY REASON.
65#   TO THE FULL EXTENT PERMITTED BY LAW, ALL OBLIGATIONS ARE HEREBY
66#   EXCLUDED WHETHER EXPRESS, STATUTORY OR IMPLIED UNDER LAW, COURSE OF
67#   DEALING, CUSTOM, TRADE USAGE, ORAL OR WRITTEN STATEMENT OR OTHERWISE,
68#   INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES OF MERCHANTABILITY
69#   OR FITNESS FOR A PARTICULAR PURPOSE CONCERNING THE CODE.
70#
71# 5. NO LIABILITY.
72#   UNDER NO CIRCUMSTANCES SHALL JPRS AND/OR ITS AFFILIATES, LICENSORS, OR
73#   REPRESENTATIVES BE LIABLE FOR ANY DAMAGES INCLUDING BUT NOT LIMITED TO
74#   CONSEQUENTIAL, INDIRECT, SPECIAL, PUNITIVE OR INCIDENTAL DAMAGES,
75#   WHETHER FORESEEABLE OR UNFORESEEABLE, BASED ON YOUR CLAIMS, INCLUDING,
76#   BUT NOT LIMITED TO, CLAIMS FOR LOSS OF DATA, GOODWILL, PROFITS, USE OF
77#   MONEY, INTERRUPTION IN USE OR AVAILABILITY OF DATA, STOPPAGE, IMPLIED
78#   WARRANTY, BREACH OF CONTRACT, MISREPRESENTATION, NEGLIGENCE, STRICT
79#   LIABILITY IN TORT, OR OTHERWISE.
80#
81# 6. Indemnification.
82#   You hereby agree to indemnify, defend, and hold harmless JPRS for any
83#   liability incurred by JRPS due to your terms of warranty, support,
84#   indemnity, or liability offered by you to any third party.
85#
86# 7. Termination.
87# 7.1 This OSCL shall be automatically terminated in the events that:
88#   (a) You fail to comply with the terms herein and fail to cure such
89#       breach within 30 days of becoming aware of the breach;
90#   (b) You initiate patent or copyright infringement litigation against
91#       any party (including a cross-claim or counterclaim in a lawsuit)
92#       alleging that the Code constitutes a direct or indirect patent or
93#       copyright infringement, in such case, this OSCL to you shall
94#       terminate as of the date such litigation is filed;
95# 7.2 In the event of termination under Sections 7.1(a) or 7.1(b) above,
96#     all end user license agreements (excluding distributors and
97#     resellers) which have been validly granted by You or any distributor
98#     hereunder prior to termination shall survive termination.
99#
100#
101# 8. General.
102#   This OSCL shall be governed by, and construed and enforced in
103#   accordance with, the laws of Japan. Any litigation or arbitration
104#   between the parties shall be conducted exclusively in Tokyo, Japan
105#   except written consent of JPRS provides other venue.
106#
107#
108#                                EXHIBIT A
109#
110# The original open source code of idnkit-2 is idnkit-1.0 developed and
111# conceived by Japan Network Information Center ("JPNIC"), a Japanese
112# association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda,
113# Chiyoda-ku, Tokyo 101-0047, Japan, and JPRS modifies above original code
114# under following Terms and Conditions set forth by JPNIC.
115#
116#                                  JPNIC
117#
118# Copyright (c) 2000-2002 Japan Network Information Center.  All rights reserved.
119#
120# By using this file, you agree to the terms and conditions set forth bellow.
121#
122#                       LICENSE TERMS AND CONDITIONS
123#
124# The following License Terms and Conditions apply, unless a different
125# license is obtained from Japan Network Information Center ("JPNIC"),
126# a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda,
127# Chiyoda-ku, Tokyo 101-0047, Japan.
128#
129# 1. Use, Modification and Redistribution (including distribution of any
130#    modified or derived work) in source and/or binary forms is permitted
131#    under this License Terms and Conditions.
132#
133# 2. Redistribution of source code must retain the copyright notices as they
134#    appear in each source code file, this License Terms and Conditions.
135#
136# 3. Redistribution in binary form must reproduce the Copyright Notice,
137#    this License Terms and Conditions, in the documentation and/or other
138#    materials provided with the distribution. For the purposes of binary
139#    distribution the "Copyright Notice" refers to the following language:
140#    "Copyright (c) 2000-2002 Japan Network Information Center.  All rights reserved."
141#
142# 4. The name of JPNIC may not be used to endorse or promote products
143#    derived from this Software without specific prior written approval of
144#    JPNIC.
145#
146# 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC
147#    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
148#    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
149#    PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE
150#    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
151#    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
152#    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
153#    BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
154#    WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
155#    OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
156#    ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
157#
158#
159#                        JPRS Public License Notice
160#                                   For
161#                                idnkit-2.
162#
163# The contents of this file are subject to the Terms and Conditions for
164# the Open Source Code License (the "OSCL"). You may not use this file
165# except in compliance with above terms and conditions. A copy of the OSCL
166# is available at <http://jprs.co.jp/idn/>.
167# The JPRS Revised Code is idnkit-2.
168# The Initial Developer of the JPRS Revised Code is Japan Network
169# Information Center ("JPNIC"), a Japanese association,
170# Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda, Chiyoda-ku, Tokyo
171# 101-0047, Japan.
172# "Copyright (c) 2000-2002 Japan Network Information Center.  All rights reserved."
173# "Copyright (c) 2010-2012 Japan Registry Services Co., Ltd.  All rights reserved."
174# Contributor(s): ______________________________________.
175#
176# If you wish to allow use of your version of this file only under the
177# above License(s) and not to allow others to use your version of this
178# file, please indicate your decision by deleting the relevant provisions
179# above and replacing them with the notice and other provisions required
180# by the above License(s). If you do not delete the relevant provisions,
181# a recipient may use your version of this file under either the above
182# License(s).
183#
184
185#
186# Tests local check (IDN_LOCALCHECK).
187#
188--
189#
190# local check test.
191# In a local code point set file, a line consists of a code point (00E1).
192# All code points in the input name are valid.
193#
194             api: encodename
195  local_encoding: U-escape
196            conf:
197        localset: 00E1
198            from: \u{e1}\u{e1}
199         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
200          result: success
201              to: \u{e1}\u{e1}
202--
203#
204# local check test.
205# In a local code point set file, a line consists of a code point (00E1).
206# The input name contains an invalid code point.
207#
208             api: encodename
209  local_encoding: U-escape
210            conf:
211        localset: 00E1
212            from: \u{e1}\u{e1}\u{e2}
213         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
214          result: local check failed
215              to:
216--
217#
218# local check test.
219# In a local code point set file, a line consists of a range (00E1..00E3).
220# All code points in the input name are valid.
221#
222             api: encodename
223  local_encoding: U-escape
224            conf:
225        localset: 00E1..00E3
226            from: \u{e1}\u{e2}\u{e3}
227         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
228          result: success
229              to: \u{e1}\u{e2}\u{e3}
230--
231#
232# local check test.
233# In a local code point set file, a line consists of a range (00E1..00E3).
234# The input name contains an invalid code point U+00E0.
235#
236             api: encodename
237  local_encoding: U-escape
238            conf:
239        localset: 00E1..00E3
240            from: \u{e1}\u{e2}\u{e3}\u{e0}
241         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
242          result: local check failed
243              to:
244--
245#
246# local check test.
247# In a local code point set file, a line consists of a range (00E1..00E3).
248# The input name contains an invalid code point U+00E4.
249#
250             api: encodename
251  local_encoding: U-escape
252            conf:
253        localset: 00E1..00E3
254            from: \u{e1}\u{e2}\u{e3}\u{e4}
255         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
256          result: local check failed
257              to:
258--
259#
260# local check test.
261# In a local code point set file, a line consists of a code point (00E1)
262# followed by a semicolon.
263# The input name contains an invalid code point.
264#
265             api: encodename
266  local_encoding: U-escape
267            conf:
268        localset: 00E1;
269            from: \u{e1}\u{e1}
270         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
271          result: success
272              to: \u{e1}\u{e1}
273--
274#
275# local check test.
276# In a local code point set file, a line consists of a code point (00E1)
277# followed by a semicolon.
278# The input name contains an invalid code point.
279#
280             api: encodename
281  local_encoding: U-escape
282            conf:
283        localset: 00E1;
284            from: \u{e1}\u{e1}\u{e2}
285         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
286          result: local check failed
287              to:
288--
289#
290# local check test.
291# In a local code point set file, a line consists of a range (00E1..00E3)
292# followed by a semicolon.
293# All code points in the input name are valid.
294#
295             api: encodename
296  local_encoding: U-escape
297            conf:
298        localset: 00E1..00E3;
299            from: \u{e1}\u{e2}\u{e3}
300         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
301          result: success
302              to: \u{e1}\u{e2}\u{e3}
303--
304#
305# local check test.
306# In a local code point set file, a line consists of a range (00E1..00E3)
307# followed by a semicolon.
308# The input name contains an invalid code point U+00E0.
309#
310             api: encodename
311  local_encoding: U-escape
312            conf:
313        localset: 00E1..00E3;
314            from: \u{e1}\u{e2}\u{e3}\u{e0}
315         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
316          result: local check failed
317              to:
318--
319#
320# local check test.
321# In a local code point set file, a line consists of a range (00E1..00E3)
322# followed by a semicolon.
323# The input name contains an invalid code point U+00E4.
324#
325             api: encodename
326  local_encoding: U-escape
327            conf:
328        localset: 00E1..00E3;
329            from: \u{e1}\u{e2}\u{e3}\u{e4}
330         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
331          result: local check failed
332              to:
333--
334#
335# local check test.
336# In a local code point set file, a line consists of a code point (00E1)
337# and an extra field.
338# All code points in the input name are valid.
339#
340             api: encodename
341  local_encoding: U-escape
342            conf:
343        localset: 00E1; yeah
344            from: \u{e1}\u{e1}
345         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
346          result: success
347              to: \u{e1}\u{e1}
348--
349#
350# local check test.
351# In a local code point set file, a line consists of a code point (00E1)
352# and an extra field.
353# The input name contains an invalid code point.
354#
355             api: encodename
356  local_encoding: U-escape
357            conf:
358        localset: 00E1; yeah
359            from: \u{e1}\u{e1}\u{e2}
360         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
361          result: local check failed
362              to:
363--
364#
365# local check test.
366# In a local code point set file, a line consists of a range (00E1..00E3)
367# and an extra field.
368# All code points in the input name are valid.
369#
370             api: encodename
371  local_encoding: U-escape
372            conf:
373        localset: 00E1..00E3; yeah
374            from: \u{e1}\u{e2}\u{e3}
375         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
376          result: success
377              to: \u{e1}\u{e2}\u{e3}
378--
379#
380# local check test.
381# In a local code point set file, a line consists of a range (00E1..00E3)
382# and an extra field.
383# The input name contains an invalid code point U+00E0.
384#
385             api: encodename
386  local_encoding: U-escape
387            conf:
388        localset: 00E1..00E3; yeah
389            from: \u{e1}\u{e2}\u{e3}\u{e0}
390         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
391          result: local check failed
392              to:
393--
394#
395# local check test.
396# In a local code point set file, a line consists of a range (00E1..00E3)
397# and an extra field.
398# The input name contains an invalid code point U+00E4.
399#
400             api: encodename
401  local_encoding: U-escape
402            conf:
403        localset: 00E1..00E3; yeah
404            from: \u{e1}\u{e2}\u{e3}\u{e4}
405         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
406          result: local check failed
407              to:
408--
409#
410# local check test.
411# In a local code point set file, a line consists of a code point (00E1)
412# and a comment.
413# All code points in the input name are valid.
414#
415             api: encodename
416  local_encoding: U-escape
417            conf:
418        localset: 00E1 # comment
419            from: \u{e1}\u{e1}
420         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
421          result: success
422              to: \u{e1}\u{e1}
423--
424#
425# local check test.
426# In a local code point set file, a line consists of a code point (00E1)
427# and a comment.
428# The input name contains an invalid code point.
429#
430             api: encodename
431  local_encoding: U-escape
432            conf:
433        localset: 00E1 # comment
434            from: \u{e1}\u{e1}\u{e2}
435         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
436          result: local check failed
437              to:
438--
439#
440# local check test.
441# In a local code point set file, a line consists of a range (00E1..00E3)
442# and a comment.
443# All code points in the input name are valid.
444#
445             api: encodename
446  local_encoding: U-escape
447            conf:
448        localset: 00E1..00E3 # comment
449            from: \u{e1}\u{e2}\u{e3}
450         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
451          result: success
452              to: \u{e1}\u{e2}\u{e3}
453--
454#
455# local check test.
456# In a local code point set file, a line consists of a range (00E1..00E3)
457# and a comment.
458# The input name contains an invalid code point U+00E0.
459#
460             api: encodename
461  local_encoding: U-escape
462            conf:
463        localset: 00E1..00E3 # comment
464            from: \u{e1}\u{e2}\u{e3}\u{e0}
465         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
466          result: local check failed
467              to:
468--
469#
470# local check test.
471# In a local code point set file, a line consists of a range (00E1..00E3)
472# and a comment.
473# The input name contains an invalid code point U+00E4.
474#
475             api: encodename
476  local_encoding: U-escape
477            conf:
478        localset: 00E1..00E3 # comment
479            from: \u{e1}\u{e2}\u{e3}\u{e4}
480         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
481          result: local check failed
482              to:
483--
484#
485# local check test.
486# In a local code point set file, a line consists of a code point
487# (E1; no zero prefix).
488# All code points in the input name are valid.
489#
490             api: encodename
491  local_encoding: U-escape
492            conf:
493        localset: E1
494            from: \u{e1}\u{e1}
495         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
496          result: success
497              to: \u{e1}\u{e1}
498--
499#
500# local check test.
501# In a local code point set file, a line consists of a code point
502# (E1; no zero prefix).
503# The input name contains an invalid code point.
504#
505             api: encodename
506  local_encoding: U-escape
507            conf:
508        localset: E1
509            from: \u{e1}\u{e1}\u{e2}
510         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
511          result: local check failed
512              to:
513--
514#
515# local check test.
516# In a local code point set file, a line consists of a range
517# (E1..E3; no zero prefixes).
518# All code points in the input name are valid.
519#
520             api: encodename
521  local_encoding: U-escape
522            conf:
523        localset: E1..E3
524            from: \u{e1}\u{e2}\u{e3}
525         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
526          result: success
527              to: \u{e1}\u{e2}\u{e3}
528--
529#
530# local check test.
531# In a local code point set file, a line consists of a range
532# (E1..E3; no zero prefixes).
533# The input name contains an invalid code point U+00E0.
534#
535             api: encodename
536  local_encoding: U-escape
537            conf:
538        localset: E1..E3 # comment
539            from: \u{e1}\u{e2}\u{e3}\u{e0}
540         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
541          result: local check failed
542              to:
543--
544#
545# local check test.
546# In a local code point set file, a line consists of a range
547# (E1..E3; no zero prefixes).
548# The input name contains an invalid code point U+00E4.
549#
550             api: encodename
551  local_encoding: U-escape
552            conf:
553        localset: E1..E3 # comment
554            from: \u{e1}\u{e2}\u{e3}\u{e0}\u{e4}
555         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
556          result: local check failed
557              to:
558--
559#
560# local check test.
561# In a local code point set file, a line consists of a code point
562# (0000E1; extra zero prefixes).
563# All code points in the input name are valid.
564#
565             api: encodename
566  local_encoding: U-escape
567            conf:
568        localset: 0000E1
569            from: \u{e1}\u{e1}
570         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
571          result: success
572              to: \u{e1}\u{e1}
573--
574#
575# local check test.
576# In a local code point set file, a line consists of a code point
577# (0000E1; extra zero prefixes).
578# The input name contains an invalid code point.
579#
580             api: encodename
581  local_encoding: U-escape
582            conf:
583        localset: 0000E1
584            from: \u{e1}\u{e1}\u{e2}
585         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
586          result: local check failed
587              to:
588--
589#
590# local check test.
591# In a local code point set file, a line consists of a range
592# (0000E1..0000E3; extra zero prefixes).
593# All code points in the input name are valid.
594#
595             api: encodename
596  local_encoding: U-escape
597            conf:
598        localset: 0000E1..0000E3
599            from: \u{e1}\u{e2}\u{e3}
600         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
601          result: success
602              to: \u{e1}\u{e2}\u{e3}
603--
604#
605# local check test.
606# In a local code point set file, a line consists of a range
607# (0000E1..0000E3; extra zero prefixes).
608# The input name contains an invalid code point U+00E0.
609#
610             api: encodename
611  local_encoding: U-escape
612            conf:
613        localset: 0000E1..0000E3 # comment
614            from: \u{e1}\u{e2}\u{e3}\u{e0}
615         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
616          result: local check failed
617              to:
618--
619#
620# local check test.
621# In a local code point set file, a line consists of a range
622# (0000E1..0000E3; extra zero prefixes).
623# The input name contains an invalid code point U+00E4.
624#
625             api: encodename
626  local_encoding: U-escape
627            conf:
628        localset: 0000E1..0000E3 # comment
629            from: \u{e1}\u{e2}\u{e3}\u{e0}\u{e4}
630         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
631          result: local check failed
632              to:
633--
634#
635# local check test.
636# In a local code point set file, a line consists of a code point
637# (U+00E1; with 'U+' prefix).
638#
639             api: encodename
640  local_encoding: U-escape
641            conf:
642        localset: U+00E1
643            from: \u{e1}\u{e1}
644         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
645          result: success
646              to: \u{e1}\u{e1}
647--
648#
649# local check test.
650# In a local code point set file, a line consists of a code point
651# (U+00E1; with 'U+' prefix).
652# The input name contains an invalid code point.
653#
654             api: encodename
655  local_encoding: U-escape
656            conf:
657        localset: U+00E1
658            from: \u{e1}\u{e1}\u{e2}
659         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
660          result: local check failed
661              to:
662--
663#
664# local check test.
665# In a local code point set file, a line consists of a range
666# (U+00E1..U+00E3; with 'U+' prefixes).
667# All code points in the input name are valid.
668#
669             api: encodename
670  local_encoding: U-escape
671            conf:
672        localset: U+00E1..U+00E3
673            from: \u{e1}\u{e2}\u{e3}
674         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
675          result: success
676              to: \u{e1}\u{e2}\u{e3}
677--
678#
679# local check test.
680# In a local code point set file, a line consists of a range
681# (U+00E1..U+00E3; with 'U+' prefixes).
682# The input name contains an invalid code point U+00E0.
683#
684             api: encodename
685  local_encoding: U-escape
686            conf:
687        localset: U+00E1..U+00E3
688            from: \u{e1}\u{e2}\u{e3}\u{e0}
689         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
690          result: local check failed
691              to:
692--
693#
694# local check test.
695# In a local code point set file, a line consists of a range
696# (U+00E1..U+00E3; with 'U+' prefixes).
697# The input name contains an invalid code point U+00E4.
698#
699             api: encodename
700  local_encoding: U-escape
701            conf:
702        localset: U+00E1..U+00E3
703            from: \u{e1}\u{e2}\u{e3}\u{e4}
704         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
705          result: local check failed
706              to:
707--
708#
709# local check test.
710# In a local code point set file, a line consists of a code point
711# (00e1; written in lowercase dists).
712# All code points in the input name are valid.
713#
714             api: encodename
715  local_encoding: U-escape
716            conf:
717        localset: 00e1
718            from: \u{e1}\u{e1}
719         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
720          result: success
721              to: \u{e1}\u{e1}
722--
723#
724# local check test.
725# In a local code point set file, a line consists of a code point
726# (00e1; written in lowercase dists).
727# The input name contains an invalid code point.
728#
729             api: encodename
730  local_encoding: U-escape
731            conf:
732        localset: 00e1
733            from: \u{e1}\u{e1}\u{e2}
734         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
735          result: local check failed
736              to:
737--
738#
739# local check test.
740# In a local code point set file, a line consists of a range
741# (00e1..00e3; written in lowercase dists).
742# All code points in the input name are valid.
743#
744             api: encodename
745  local_encoding: U-escape
746            conf:
747        localset: 00e1..00e3
748            from: \u{e1}\u{e2}\u{e3}
749         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
750          result: success
751              to: \u{e1}\u{e2}\u{e3}
752--
753#
754# local check test.
755# In a local code point set file, a line consists of a range
756# (00e1..00e3; written in lowercase dists).
757# The input name contains an invalid code point U+00E0.
758#
759             api: encodename
760  local_encoding: U-escape
761            conf:
762        localset: 00e1..00e3
763            from: \u{e1}\u{e2}\u{e3}\u{e0}
764         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
765          result: local check failed
766              to:
767--
768#
769# local check test.
770# In a local code point set file, a line consists of a range
771# (00e1..00e3; written in lowercase dists).
772# The input name contains an invalid code point U+00E4.
773#
774             api: encodename
775  local_encoding: U-escape
776            conf:
777        localset: 00e1..00e3
778            from: \u{e1}\u{e2}\u{e3}\u{e4}
779         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
780          result: local check failed
781              to:
782--
783#
784# local check test.
785# In a local code point set file, a line consists of a range
786# (START..END), but START is the same as END.
787# All code points in the input name are valid.
788#
789             api: encodename
790  local_encoding: U-escape
791            conf:
792        localset: 00e1..00e1
793            from: \u{e1}\u{e1}
794         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
795          result: success
796              to: \u{e1}\u{e1}
797--
798#
799# local check test.
800# In a local code point set file, a line consists of a range
801# (START..END), but START = END.
802# The input name contains an invalid code point.
803#
804             api: encodename
805  local_encoding: U-escape
806            conf:
807        localset: 00E1..00E1
808            from: \u{e1}\u{e1}\u{e2}
809         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
810          result: local check failed
811              to:
812--
813#
814# local check test.
815# In a local code point set file, a line consists of a range
816# (START..END), but START > END.
817#
818             api: encodename
819  local_encoding: U-escape
820            conf:
821        localset: 00E3..00E1
822            from: ABC
823         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
824          result: idn_setlocalcheckfile() ERROR: invalid code point
825              to:
826--
827#
828# local check test.
829# A line in a local code point set file is malformed.
830# There is no END code point for a range (START..END).
831#
832             api: encodename
833  local_encoding: U-escape
834            conf:
835        localset: 00E1..
836            from: ABC
837         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
838          result: idn_setlocalcheckfile() ERROR: syntax error
839              to:
840--
841#
842# local check test.
843# A line in a local code point set file is malformed.
844# There is no START code point for a range (START..END).
845#
846             api: encodename
847  local_encoding: U-escape
848            conf:
849        localset: ..00E3
850            from: ABC
851         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
852          result: idn_setlocalcheckfile() ERROR: syntax error
853              to:
854--
855#
856# local check test.
857# A line in a local code point set file is malformed.
858# There is no START or END code point for a range (START..END).
859#
860             api: encodename
861  local_encoding: U-escape
862            conf:
863        localset: ..
864            from: ABC
865         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
866          result: idn_setlocalcheckfile() ERROR: syntax error
867              to:
868--
869#
870# local check test.
871# A line in a local code point set file is malformed.
872# There is only one '.' for a range (START..END).
873#
874             api: encodename
875  local_encoding: U-escape
876            conf:
877        localset: 00E1.00E3
878            from: ABC
879         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
880          result: idn_setlocalcheckfile() ERROR: syntax error
881              to:
882--
883#
884# local check test.
885# A line in a local code point set file is malformed.
886# There is an extra '.' for a range (START..END).
887#
888             api: encodename
889  local_encoding: U-escape
890            conf:
891        localset: 00E1...00E3
892            from: ABC
893         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
894          result: idn_setlocalcheckfile() ERROR: syntax error
895              to:
896--
897#
898# local check test.
899# A line in a local code point set file is malformed.
900# The line consists of non-code point field "XXX".
901#
902             api: encodename
903  local_encoding: U-escape
904            conf:
905        localset: XXXX
906            from: ABC
907         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
908          result: idn_setlocalcheckfile() ERROR: syntax error
909              to:
910--
911#
912# local check test.
913# A line in a local code point set file consists of a  range (START..END),
914# but END is "XXXX".
915#
916             api: encodename
917  local_encoding: U-escape
918            conf:
919        localset: 00E1..XXXX
920            from: ABC
921         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
922          result: idn_setlocalcheckfile() ERROR: syntax error
923              to:
924--
925#
926# local check test.
927# A line in a local code point set file consists of a  range (START..END),
928# but START is "XXXX".
929#
930             api: encodename
931  local_encoding: U-escape
932            conf:
933        localset: XXXX..00E3
934            from: ABC
935         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
936          result: idn_setlocalcheckfile() ERROR: syntax error
937              to:
938--
939#
940# local check test.
941# A line in a local code point set file consists of a  range (START..END),
942# but a whitespace is inserted between START and "..".
943#
944             api: encodename
945  local_encoding: U-escape
946            conf:
947        localset: 00E1 ..00E3
948            from: ABC
949         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
950          result: idn_setlocalcheckfile() ERROR: syntax error
951              to:
952--
953#
954# local check test.
955# A line in a local code point set file consists of a  range (START..END),
956# but a whitespace is inserted between ".." and END.
957#
958             api: encodename
959  local_encoding: U-escape
960            conf:
961        localset: 00E1.. 00E3
962            from: ABC
963         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
964          result: idn_setlocalcheckfile() ERROR: syntax error
965              to:
966--
967#
968# local check test.
969#
970# A line in a local code point set file consists of a  range (START..END),
971# but some whitespaces are inserted among START and END.
972#
973             api: encodename
974  local_encoding: U-escape
975            conf:
976        localset: 00E1 .. 00E3
977            from: ABC
978         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
979          result: idn_setlocalcheckfile() ERROR: syntax error
980              to:
981--
982#
983# local check test.
984# A line in a local code point set file consists of a code point U+10FFFF.
985#
986             api: encodename
987  local_encoding: U-escape
988            conf:
989        localset: 10FFFF
990            from: \u{10ffff}
991         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
992          result: success
993              to: \u{10ffff}
994--
995#
996# local check test.
997# A line in a local code point set file consists of a code point U+110000.
998#
999             api: encodename
1000  local_encoding: U-escape
1001            conf:
1002        localset: 110000
1003            from: \u{110000}
1004         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
1005          result: idn_setlocalcheckfile() ERROR: invalid code point
1006              to:
1007--
1008#
1009# local check test.
1010# A line in a local code point set file consists of a range (0000..10FFFF).
1011#
1012             api: encodename
1013  local_encoding: U-escape
1014            conf:
1015        localset: 0000..10FFFF
1016            from: \u{10ffff}
1017         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
1018          result: success
1019              to: \u{10ffff}
1020--
1021#
1022# local check test.
1023# A line in a local code point set file consists of a range (10FFFF..110000).
1024#
1025             api: encodename
1026  local_encoding: U-escape
1027            conf:
1028        localset: 10FFFF..110000
1029            from: \u{10ffff}
1030         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
1031          result: idn_setlocalcheckfile() ERROR: invalid code point
1032              to:
1033--
1034#
1035# local check test.
1036# A line in a local code point set file consists of a range (110000..110001).
1037#
1038             api: encodename
1039  local_encoding: U-escape
1040            conf:
1041        localset: 110000..110001
1042            from: \u{110000}
1043         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
1044          result: idn_setlocalcheckfile() ERROR: invalid code point
1045              to:
1046--
1047#
1048# local check test.
1049# There is a comment line in a local code point set file.
1050#
1051             api: encodename
1052  local_encoding: U-escape
1053            conf:
1054        localset: #
1055        localset: 00E1
1056            from: \u{e1}\u{e1}
1057         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
1058          result: success
1059              to: \u{e1}\u{e1}
1060--
1061#
1062# local check test.
1063# There is an empty line in a local code point set file.
1064#
1065             api: encodename
1066  local_encoding: U-escape
1067            conf:
1068        localset:
1069        localset: 00E1
1070            from: \u{e1}\u{e1}
1071         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
1072          result: success
1073              to: \u{e1}\u{e1}
1074--
1075#
1076# local check test.
1077# The input name is "" and also the code point set file has no definition.
1078#
1079             api: encodename
1080  local_encoding: U-escape
1081            conf:
1082        localset:
1083            from:
1084         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
1085          result: success
1086              to:
1087--
1088#
1089# local check test.
1090# The input name is "".
1091#
1092             api: encodename
1093  local_encoding: U-escape
1094            conf:
1095        localset: 00E1
1096        localset: 00E2
1097            from:
1098         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
1099          result: success
1100              to:
1101--
1102#
1103# local check test.
1104# The local check file doesn't exist.
1105# The local check file is removed by 'post_setup'.
1106#
1107             api: encodename
1108  local_encoding: U-escape
1109            conf:
1110        localset:
1111      post_setup: rm -f @LOCALSET_FILE@
1112            from: \u{e1}\u{e2}
1113         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
1114          result: idn_setlocalcheckfile() ERROR: no such file
1115              to:
1116--
1117#
1118# local check test.
1119# The last line in the local check file doesn't ends with newline.
1120#
1121             api: encodename
1122  local_encoding: U-escape
1123            conf:
1124        localset:
1125      post_setup: cp $SRCDIR/no-newline.set @LOCALSET_FILE@
1126            from: \u{e1}\u{e2}\u{e3}
1127         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
1128          result: success
1129              to: \u{e1}\u{e2}\u{e3}
1130--
1131#
1132# local check test.
1133# Too long line in a local code point set file.
1134#
1135             api: encodename
1136  local_encoding: U-escape
1137            conf:
1138        localset: # ****************************************************************************************************************************************************************************************************************************************************************************************************************************
1139            from: ABC
1140         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
1141          result: idn_setlocalcheckfile() ERROR: syntax error
1142              to:
1143--
1144#
1145# local check test.
1146# No code point set file is specified.
1147#
1148             api: encodename
1149  local_encoding: U-escape
1150            conf:
1151            from: ABC
1152         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
1153          result: success
1154              to: ABC
1155--
1156######################################################################
1157# Tests using decodename.
1158######################################################################
1159--
1160#
1161# local check test.
1162# All code points in an input name are valid.
1163#
1164             api: decodename
1165  local_encoding: U-escape
1166            conf:
1167        localset: 00E1
1168        localset: 00E2
1169            from: \u{e1}\u{e2}
1170         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
1171          result: success
1172              to: \u{e1}\u{e2}
1173--
1174#
1175# local check test.
1176# A code point in an input name is not valid.
1177#
1178             api: decodename
1179  local_encoding: U-escape
1180            conf:
1181        localset: 00E1
1182        localset: 00E2
1183            from: \u{e0}\u{e1}\u{e2}
1184         actions: IDN_UNICODECONV IDN_LOCALCHECK IDN_LOCALCONV
1185          result: local check failed
1186              to:
1187--
1188