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 about configuration file loading.
187#
188# Also other test definition files do tests about configuration file loading:
189#
190#    Tests about 'language' entry are done by
191#       test/language/language.def.
192#    Tests about 'map' entry are done by
193#       test/map/map.def.
194#    Tests about 'language-local' entry are done by
195#       test/languagelocal/languagelocal.def.
196#    Tests about 'delimiters' entry are done by
197#       test/delimitermap/delimitermap.def.
198#    Tests about 'tld-local', 'localmap' entry are done by
199#       test/tldlocal/tldlocal.def.
200#
201# This definition file do tests no convered above.
202#
203--
204#
205# Configuration file loading test.
206# Too long line.
207#
208             api: encodename
209  local_encoding: U-escape
210            conf: ########################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################
211            from: ABCDEF
212         actions: IDN_ENCODE_REGIST
213          result: idn_resconf_loadfile() ERROR: syntax error
214              to:
215--
216#
217# Configuration file loading test.
218# A comment line in a configuration file.
219#
220             api: encodename
221  local_encoding: U-escape
222            conf: # comment
223            conf: map delimitermap
224            conf: delimiters 3002
225            from: ABCDEF\u{3002}jp
226         actions: IDN_ENCODE_REGIST
227          result: success
228              to: abcdef.jp
229--
230#
231# Configuration file loading test.
232# An empty line in a configuration file.
233#
234             api: encodename
235  local_encoding: U-escape
236            conf:
237            conf: map delimitermap
238            conf: delimiters 3002
239            from: ABCDEF\u{3002}jp
240         actions: IDN_ENCODE_REGIST
241          result: success
242              to: abcdef.jp
243--
244#
245# Configuration file loading test.
246# Obsolete entry 'idn-encoding'.
247#
248             api: encodename
249  local_encoding: U-escape
250            conf: idn-encoding test
251            conf: map delimitermap
252            conf: delimiters 3002
253            from: ABCDEF\u{3002}jp
254         actions: IDN_ENCODE_REGIST
255          result: success
256              to: abcdef.jp
257--
258#
259# Configuration file loading test.
260# Obsolete entry 'nameprep'.
261#
262             api: encodename
263  local_encoding: U-escape
264            conf: nameprep test
265            conf: map delimitermap
266            conf: delimiters 3002
267            from: ABCDEF\u{3002}jp
268         actions: IDN_ENCODE_REGIST
269          result: success
270              to: abcdef.jp
271--
272#
273# Configuration file loading test.
274# Unidentified entry.
275#
276             api: encodename
277  local_encoding: U-escape
278            conf: xxx
279            from: ABCDEF\u{3002}jp
280         actions: IDN_ENCODE_REGIST
281          result: idn_resconf_loadfile() ERROR: syntax error
282              to:
283--
284#
285# Configuration file loading test.
286# A configuration file name is specified, but the file doesn't exist.
287# (The configuration file is removed by 'post_setup'.)
288#
289             api: encodename
290  local_encoding: U-escape
291            conf:
292      post_setup: rm -f @CONF_FILE@
293            from: ABC
294         actions: IDN_ENCODE_REGIST
295          result: idn_resconf_loadfile() ERROR: no such file
296              to:
297--
298#
299# Configuration file loading test.
300# The last line of the configuration file name lacks a newline.
301# Use 'no-newline.conf' as the configuration file, and it defines
302# 'delimiters 0040'.
303#
304             api: encodename
305  local_encoding: U-escape
306            conf:
307      post_setup: cp -f $SRCDIR/no-newline.conf @CONF_FILE@
308            from: A@B
309         actions: IDN_ENCODE_REGIST
310          result: success
311              to: a.b
312--
313#
314# Configuration file loading test.
315# Read system default configuration file.
316#
317             api: encodename
318  local_encoding: U-escape
319      post_setup: [ -f "$SYSCONFDIR/idn2.conf" ] && IGNORE=true
320      post_setup: [ -f "${HOME}/.idn2rc" ] && IGNORE=true
321      post_setup: [ $IGNORE = false ] && cp -f $SRCDIR/no-newline.conf $SYSCONFDIR/idn2.conf || IGNORE=true
322    pre_teardown: [ $IGNORE = false ] && rm -f $SYSCONFDIR/idn2.conf
323            from: A@B
324         actions: IDN_ENCODE_REGIST
325          result: success
326              to: a.b
327--
328#
329# Configuration file loading test.
330# Read user default configuration file.
331#
332             api: encodename
333  local_encoding: U-escape
334      post_setup: [ -f "$SYSCONFDIR/idn2.conf" ] && IGNORE=true
335      post_setup: [ -f "${HOME}/.idn2rc" ] && IGNORE=true
336      post_setup: [ $IGNORE = false ] && cp -f $SRCDIR/no-newline.conf $HOME/.idn2rc || IGNORE=true
337    pre_teardown: [ $IGNORE = false ] && rm -f ${HOME}/.idn2rc
338            from: A@B
339         actions: IDN_ENCODE_REGIST
340          result: success
341              to: a.b
342--
343#
344# Configuration file loading test.
345# Try to read a default configuration file but no file exists.
346#
347             api: encodename
348  local_encoding: U-escape
349      post_setup: [ -f "$SYSCONFDIR/idn2.conf" ] && IGNORE=true
350      post_setup: [ -f "${HOME}/.idn2rc" ] && IGNORE=true
351            from: A.B
352         actions: IDN_ENCODE_REGIST
353          result: success
354              to: a.b
355--
356#
357# Configuration file loading test.
358# idnkit-1.0 complains of a comment line with only one single or double
359# quote. This test case checks whether the bug is fixed or not.
360#
361             api: encodename
362  local_encoding: U-escape
363            conf: # test "
364            from: A.B
365         actions: IDN_ENCODE_REGIST
366          result: success
367              to: a.b
368--
369#
370# Configuration file loading test.
371# Each field in a line can be surrounded by double quotation marks.
372#
373             api: encodename
374  local_encoding: U-escape
375            conf: map "lowercase"
376            from: A.B
377         actions: IDN_ENCODE_REGIST
378          result: success
379              to: a.b
380--
381#
382# Configuration file loading test.
383# Each field in a line can be surrounded by single quotation marks.
384#
385             api: encodename
386  local_encoding: U-escape
387            conf: map 'lowercase'
388            from: A.B
389         actions: IDN_ENCODE_REGIST
390          result: success
391              to: a.b
392--
393#
394# Configuration file loading test.
395# Unterminated double quotaion.
396#
397             api: encodename
398  local_encoding: U-escape
399            conf: map "lowercase
400            from: A.B
401         actions: IDN_ENCODE_REGIST
402          result: idn_resconf_loadfile() ERROR: syntax error
403              to:
404--
405#
406# Configuration file loading test.
407# Unterminated single quotaion.
408#
409             api: encodename
410  local_encoding: U-escape
411            conf: map 'lowercase
412            from: A.B
413         actions: IDN_ENCODE_REGIST
414          result: idn_resconf_loadfile() ERROR: syntax error
415              to:
416--
417