1/* $Id: aliaslist.h,v 1.1 2003/06/04 00:25:34 marka Exp $ */ 2/* 3 * Copyright (c) 2002 Japan Network Information Center. All rights reserved. 4 * 5 * By using this file, you agree to the terms and conditions set forth bellow. 6 * 7 * LICENSE TERMS AND CONDITIONS 8 * 9 * The following License Terms and Conditions apply, unless a different 10 * license is obtained from Japan Network Information Center ("JPNIC"), 11 * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda, 12 * Chiyoda-ku, Tokyo 101-0047, Japan. 13 * 14 * 1. Use, Modification and Redistribution (including distribution of any 15 * modified or derived work) in source and/or binary forms is permitted 16 * under this License Terms and Conditions. 17 * 18 * 2. Redistribution of source code must retain the copyright notices as they 19 * appear in each source code file, this License Terms and Conditions. 20 * 21 * 3. Redistribution in binary form must reproduce the Copyright Notice, 22 * this License Terms and Conditions, in the documentation and/or other 23 * materials provided with the distribution. For the purposes of binary 24 * distribution the "Copyright Notice" refers to the following language: 25 * "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved." 26 * 27 * 4. The name of JPNIC may not be used to endorse or promote products 28 * derived from this Software without specific prior written approval of 29 * JPNIC. 30 * 31 * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC 32 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 34 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE 35 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 36 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 37 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 38 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 39 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 40 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 41 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 42 */ 43 44#ifndef IDN_ALIASLIST_H 45#define IDN_ALIASLIST_H 1 46 47#include <idn/result.h> 48 49#ifdef __cplusplus 50extern "C" { 51#endif 52 53typedef struct idn__aliaslist *idn__aliaslist_t; 54 55/* 56 * Create a list. 57 * 58 * Returns: 59 * idn_success -- ok. 60 * idn_nomemory -- malloc failed. 61 */ 62extern idn_result_t 63idn__aliaslist_create(idn__aliaslist_t *listp); 64 65/* 66 * Delete a list created by 'idn__aliaslist_create'. 67 */ 68extern void 69idn__aliaslist_destroy(idn__aliaslist_t list); 70 71/* 72 * Parse alias information file and set items to the list. 73 * 74 * Returns: 75 * idn_success -- ok. 76 * idn_nofile -- no such file. 77 * idn_invalid_syntax -- file is malformed. 78 * idn_nomemory -- malloc failed. 79 */ 80extern idn_result_t 81idn__aliaslist_aliasfile(idn__aliaslist_t list, const char *path); 82 83/* 84 * Add an item to the list. 85 * 86 * If top is 0, item is placed as the last item of the alias list. 87 * Otherwise, it is done as the first item. 88 * 89 * Returns: 90 * idn_success -- ok. 91 * idn_nomemory -- malloc failed. 92 */ 93extern idn_result_t 94idn__aliaslist_additem(idn__aliaslist_t list, 95 const char *pattern, const char *encoding, 96 int first_item); 97 98/* 99 * Find the encoding name with the specified pattern by wildcard 100 * match. 101 * 102 * Returns: 103 * idn_success -- ok. found. 104 * idn_noentry -- not found. 105 */ 106extern idn_result_t 107idn__aliaslist_find(idn__aliaslist_t list, 108 const char *pattern, char **encodingp); 109 110#ifdef __cplusplus 111} 112#endif 113 114#endif /* IDN_ALIASLIST_H */ 115