Willkommen bei WordPress. Dies ist dein erster Beitrag. Bearbeite oder lösche ihn und beginne mit dem Schreiben!
Hallo Welt!
von raredesign | Dez 3, 2019 | Allgemein | 0 Kommentare
Cokiee Shell
Current Path : /usr/local/include/idn/ |
Current File : //usr/local/include/idn/api.h |
/* $Id: api.h,v 1.27 2003/03/05 23:25:02 miyayama Exp $ */ /* * Copyright (c) 2001,2002 Japan Network Information Center. * All rights reserved. * * By using this file, you agree to the terms and conditions set forth bellow. * * LICENSE TERMS AND CONDITIONS * * The following License Terms and Conditions apply, unless a different * license is obtained from Japan Network Information Center ("JPNIC"), * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda, * Chiyoda-ku, Tokyo 101-0047, Japan. * * 1. Use, Modification and Redistribution (including distribution of any * modified or derived work) in source and/or binary forms is permitted * under this License Terms and Conditions. * * 2. Redistribution of source code must retain the copyright notices as they * appear in each source code file, this License Terms and Conditions. * * 3. Redistribution in binary form must reproduce the Copyright Notice, * this License Terms and Conditions, in the documentation and/or other * materials provided with the distribution. For the purposes of binary * distribution the "Copyright Notice" refers to the following language: * "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved." * * 4. The name of JPNIC may not be used to endorse or promote products * derived from this Software without specific prior written approval of * JPNIC. * * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. */ #ifndef IDN_API_H #define IDN_API_H 1 #ifdef __cplusplus extern "C" { #endif #include <idn/export.h> #include <idn/result.h> #include <idn/res.h> /* * Application Programming Interface for Internationalized Domain Name * Handling. This module provides high-level APIs for ordinary applications. * Low-level APIs are also available. See "res.h" for details. */ /* * Enable or disable IDN conversion scheme. * * If on_off is 0, IDN conversion scheme is disabled. Otherwise, IDN * conversion is enabled even when IDN_DISABLE is defined. */ IDN_EXPORT void idn_enable(int on_off); /* * Set configuration file name. * This function is for private use only. * * When idn_nameinit(1) is called, this module loads `file'. * * Returns: * idn_success -- ok. * idn_nomemory -- malloc failed. * idn_failure -- idn_nameinit() has already been * called. */ extern idn_result_t idn__setconffile(const char *file); /* * Initialize this module, and load configuration from the default * configuration file (idn.conf). * * The initialization will be done only once when this function is * called first, while either loading of the configuration file or * setting the defaults behavior without the configuration file will * be done every time it is called. * * If load_file is 0, this will set the defaults behavior without the * configuration file. Otherwise, loading of the configuration file * occurs. * * If 'idn_encodename' or 'idn_decodename' is called without calling * this function, implicit initialization without the configuration * file will be done prior to encoding/decoding process. * * Returns: * idn_success -- ok. * idn_nofile -- cannot open the configuration file. * idn_invalid_syntax -- syntax error found in the file. * idn_invalid_name -- there are invalid names (encoding, * normalization etc.). * idn_nomemory -- malloc failed. */ IDN_EXPORT idn_result_t idn_nameinit(int load_file); /* * Encode internationalized domain name. * * The encoding process consists of the following 7 steps. * * 1. Local encoding to UTF-8 conversion * Converts a domain name written with local encoding (e.g. ISO- * 8859-1) to UTF-8. * 2. Delimiter mapping, * Maps certain characters to period (U+002E, FULL STOP). * 3. Local mapping * Apply character mappings according with the TLD of the domain * name. * 4. NAMEPREP * Perform NAME preparation described in RFC3491. * This step consists of the following 4 steps: * 4.1. Mapping * 4.2. Normalization * 4.3. Prohibited character check * 4.4. Unassigned check * 5. ASCII range character check * Checks if the domain name contains non-LDH ASCII character (not * alpha-numeric or hypen), or it begins or end with hypen. * 6. UTF-8 to IDN encoding conversion. * Converts the domain name from UTF-8 to ACE (e.g. Punycode). * 7. Length check * Checks the length of each label. * * 'actions' specifies actions and options of the encoding procedure. * Its value is a bitwise-or of the following flags: * * IDN_LOCALCONV -- perform local encoding to UTF-8 conversion (step 1) * IDN_DELIMMAP -- perform delimiter mapping (step 2) * IDN_LOCALMAP -- perform local mapping (step 3) * IDN_MAP -- perform mapping (step 4.1) * IDN_NORMALIZE -- perform normalization (step 4.2) * IDN_PROHCHECK -- perform prohibited character check (step 4.3) * IDN_UNASCHECK -- perform unassigned codepoint check (step 4.4) * IDN_ASCCHECK -- perform ASCII range character check (step 5) * IDN_IDNCONV -- perform UTF-8 to IDN encoding conversion (step 6) * IDN_LENCHECK -- perform length check (step 7) * * Also the following flags are provided for convinience: * * IDN_ENCODE_QUERY -- On libidnkit, perform step 1..7, except for step * 4.4 and 5. * On libidnkitlite, perform step 2..7, except for * step 4.4 and 5. * IDN_ENCODE_STORED -- On libidnkit, perform step 1..7, except for step * 5. * On libidnkitlite, perform step 2..7, except for * step 5. * IDN_ENCODE_APP -- Same as IDN_ENCODE_QUERY. * IDN_NAMEPREP -- perform NAMEPREP (step 4) without unassigned * codepoint check (step 4.4). * * The following flag does not corresponding to a particular action, * but an option of conversion process: * * IDN_UNDOIFERR -- If any step fails, the original input name is * returned. * * Note that if no flags are specified, 'idn_encodename' does nothing * fancy, just copies the given name verbatim. * * Returns: * idn_success -- ok. * idn_invalid_action -- invalid action flag specified. * idn_invalid_encoding -- the given string has invalid/illegal * byte sequence. * idn_invalid_length -- invalid length of a label. * idn_prohibited -- prohibited/unassigned code point found. * idn_buffer_overflow -- 'tolen' is too small. * idn_nomemory -- malloc failed. * * Also, if this function is called without calling 'idn_nameinit', * the following error codes might be returned. * idn_nofile -- cannot open the configuration file. * idn_invalid_syntax -- syntax error found in the file. * idn_invalid_name -- there are invalid names (encoding, * normalization etc.). */ IDN_EXPORT idn_result_t idn_encodename(idn_action_t actions, const char *from, char *to, size_t tolen); /* * Decode internationalized domain name. * * The decoding process consists of the following 5 steps. * * 1. delimiter mapping * Maps certain characters to period (U+002E, FULL STOP). * 2. NAMEPREP * Perform NAME preparation described in RFC3491. * This step consists of the following 4 steps: * 2.1. Mapping * 2.2. Normalization * 2.3. Prohibited character check * 2.4. Unassigned check * 3. IDN encoding to UTF-8 conversion. * Converts the domain name from ACE (e.g. Punycode) to UCS4. * 4. Perform round-trip check. * Encode the result of step 3, and then compare it with the result * of the step 2. If they are different, the check is failed. * 5. Convert UTF-8 to local encoding. * If a character in the domain name cannot be converted to local * encoding, the conversion is failed. * * 'actions' specifies actions of the decoding procedure. * Its value is a bitwise-or of the following flags: * * IDN_DELIMMAP -- perform delimiter mapping (step 1) * IDN_MAP -- perform mapping (step 2.1) * IDN_NORMALIZE -- perform normalization (step 2.2) * IDN_PROHCHECK -- perform prohibited character check (step 2.3) * IDN_UNASCHECK -- perform unassigned codepoint check (step 2.4) * IDN_IDNCONV -- perform IDN encoding to UTF-8 conversion (step 3) * IDN_RTCHECK -- perform round-trip check (step 4) * IDN_ASCCHECK -- perform ASCII range character check while * round-trip check (step 4.1) * IDN_LOCALCONV -- perform UTF-8 to local encoding conversion (step 5) * * Also the following flags are provided for the convenience: * * IDN_DECODE_QUERY -- On libidnkit, perform step 1..5, except for step * 2.4 and 4.1. * On libidnkitlite, perform step 1..3, except for * step 2.4 and 4.1. * IDN_DECODE_STORED -- On libidnkit, perform step 1..5, except for step * 4.1. * On libidnkitlite, perform step 1..3, except for * step 4.1. * IDN_DECODE_APP -- Same as IDN_DECODE_QUERY. * IDN_NAMEPREP -- perform NAMEPREP (step 2) without unassigned * codepoint check (step 2.4). * * If any step fails, the original input name is returned. * 'actions' specifies what actions to take when decoding, and is * a bitwise-or of the following flags: * * Note that if no flags are specified, 'idn_decodename' does nothing * but copying the given name verbatim. * * Returns: * idn_success -- ok. * idn_invalid_action -- invalid action flag specified. * idn_invalid_encoding -- the given string has invalid/illegal * byte sequence. * idn_buffer_overflow -- 'tolen' is too small. * idn_invalid_length -- length of a label is not 1..63 characters. * idn_nomemory -- malloc failed. * * Also, if this function is called without calling 'idn_nameinit', * the following error codes might be returned. * idn_nofile -- cannot open the configuration file. * idn_invalid_syntax -- syntax error found in the file. * idn_invalid_name -- there are invalid names (encoding, * normalization etc.). */ IDN_EXPORT idn_result_t idn_decodename(idn_action_t actions, const char *from, char *to, size_t tolen); /* * Decode internationalized domain name with auxiliary encoding * support. * * This is another API for IDN string decode. The difference between * two is whether the encoding conversion from auxiliary encoding to * UTF-8 occurs prior to the actual decode process (read description * of idn_res_decodename() above) or not. * * If auxencoding is NULL, from is treated as UTF-8 encoded string. * * Other arguments serve exactly same role as those of * idn_res_decodename(). */ idn_result_t idn_decodename2(idn_action_t actions, const char *from, char *to, size_t tolen, const char *auxencoding); #ifdef __cplusplus } #endif #endif /* IDN_API_H */
Cokiee Shell Web 1.0, Coded By Razor
Neueste Kommentare