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 * Functions used internally in the 'res' module. 187 */ 188 189 #ifndef IDN_RES_INTERNAL_H 190 #define IDN_RES_INTERNAL_H 1 191 192 #ifdef __cplusplus 193 extern "C" { 194 #endif 195 196 #include <stddef.h> 197 #include <idn/result.h> 198 #include <idn/export.h> 199 #include <idn/res.h> 200 #include <idn/labellist.h> 201 #include <idn/resconf_internal.h> 202 203 /* 204 * Convert 'actions' to a string. 205 * This function is for internal use only. 206 * 207 * Note that this function returns a pointer to static buffer. 208 */ 209 extern void 210 idn__res_actionstostring(idn_action_t actions, char *string); 211 212 /* 213 * 'string' argument of idn__res_actionstostring() must have at 214 * least following size. 215 */ 216 #define ACTION_STRING_BUFSIE 256 217 218 /* 219 * Perform IDN_UNICODECONV action. 220 */ 221 extern idn_result_t 222 idn__res_unicodeconv(idn_resconf_t ctx, const char *from, char **to); 223 224 /* 225 * Perform conversion from UTF-8 to UTF-32. 226 */ 227 extern idn_result_t 228 idn__res_utf8toutf32(idn_resconf_t ctx, const char *from, unsigned long **to); 229 230 /* 231 * Perform IDN_MAP action. 232 */ 233 extern idn_result_t 234 idn__res_map(idn_resconf_t ctx, const unsigned long *from, unsigned long **to); 235 236 /* 237 * Perform IDN_ASCLOWER action. 238 */ 239 extern idn_result_t 240 idn__res_asclower(idn_resconf_t ctx, idn__labellist_t label); 241 242 /* 243 * Perform IDN_IDNCONV action for idn_res_encode(). 244 */ 245 extern idn_result_t 246 idn__res_idnconv_decode(idn_resconf_t ctx, idn__labellist_t label); 247 248 /* 249 * Perform IDN_PROHCHECK action. 250 */ 251 extern idn_result_t 252 idn__res_prohcheck(idn_resconf_t ctx, idn__labellist_t label); 253 254 /* 255 * Perform IDN_UNASCHECK action. 256 */ 257 extern idn_result_t 258 idn__res_unascheck(idn_resconf_t ctx, idn__labellist_t label); 259 260 /* 261 * Perform IDN_NFCCHECK action. 262 */ 263 extern idn_result_t 264 idn__res_nfccheck(idn_resconf_t ctx, idn__labellist_t label); 265 266 /* 267 * Perform IDN_PREFCHECK action. 268 */ 269 extern idn_result_t 270 idn__res_prefcheck(idn_resconf_t ctx, idn__labellist_t label); 271 272 /* 273 * Perform IDN_HYPHCHECK action. 274 */ 275 extern idn_result_t 276 idn__res_hyphcheck(idn_resconf_t ctx, idn__labellist_t label); 277 278 /* 279 * Perform IDN_COMBCHECK action. 280 */ 281 extern idn_result_t 282 idn__res_combcheck(idn_resconf_t ctx, idn__labellist_t label); 283 284 /* 285 * Perform IDN_CTXJCHECK action. 286 */ 287 extern idn_result_t 288 idn__res_ctxjcheck(idn_resconf_t ctx, idn__labellist_t label); 289 290 /* 291 * Perform IDN_CTXOCHECK action. 292 */ 293 extern idn_result_t 294 idn__res_ctxocheck(idn_resconf_t ctx, idn__labellist_t label); 295 296 /* 297 * Perform IDN_CTXOLITECHECK action. 298 */ 299 extern idn_result_t 300 idn__res_ctxolitecheck(idn_resconf_t ctx, idn__labellist_t label); 301 302 /* 303 * Check if 'label' is an RTL label. 304 */ 305 extern int 306 idn__res_isrtllabel(idn_resconf_t ctx, idn__labellist_t label); 307 308 /* 309 * Perform IDN_BIDICHECK action. 310 */ 311 extern idn_result_t 312 idn__res_bidicheck(idn_resconf_t ctx, idn__labellist_t label); 313 314 /* 315 * Perform IDN_LOCALCHECK action. 316 */ 317 extern idn_result_t 318 idn__res_localcheck(idn_resconf_t ctx, idn__labellist_t label); 319 320 /* 321 * Perform IDN_IDNCONV action for idn_res_decode(). 322 */ 323 extern idn_result_t 324 idn__res_idnconv_encode(idn_resconf_t ctx, idn__labellist_t label); 325 326 /* 327 * Perform IDN_LENCHECK action. 328 */ 329 extern idn_result_t 330 idn__res_lencheck(idn_resconf_t ctx, idn__labellist_t label); 331 332 /* 333 * Perform IDN_RTCHECK action for idn_res_encode(). 334 */ 335 extern idn_result_t 336 idn__res_rtcheck_encode(idn_resconf_t ctx, idn__labellist_t label); 337 338 /* 339 * Perform IDN_RTCHECK action for idn_res_decode(). 340 */ 341 extern idn_result_t 342 idn__res_rtcheck_decode(idn_resconf_t ctx, idn__labellist_t label); 343 344 /* 345 * Join labels as a domain name. 346 */ 347 extern idn_result_t 348 idn__res_joinlabels(idn_resconf_t ctx, idn__labellist_t labellist, 349 unsigned long **to); 350 351 /* 352 * Perform conversion from UTF-32 to UTF-8. 353 */ 354 extern idn_result_t 355 idn__res_utf32toutf8(idn_resconf_t ctx, const unsigned long *from, char **to); 356 357 /* 358 * Perform IND_LOCALCONV action. 359 */ 360 extern idn_result_t 361 idn__res_localconv(idn_resconf_t ctx, const char *from, char *to, 362 size_t tolen); 363 364 #ifdef __cplusplus 365 } 366 #endif 367 368 #endif /* IDN_RES_INTERNAL_H */ 369