1 /* 2 * wzdftpd - a modular and cool ftp server 3 * Copyright (C) 2002-2004 Pierre Chifflier 4 * 5 * This program is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU General Public License 7 * as published by the Free Software Foundation; either version 2 8 * of the License, or (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program; if not, write to the Free Software 17 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 * 19 * As a special exemption, Pierre Chifflier 20 * and other respective copyright holders give permission to link this program 21 * with OpenSSL, and distribute the resulting executable, without including 22 * the source code for OpenSSL in the source distribution. 23 */ 24 25 #ifndef __WZD_UTF8__ 26 #define __WZD_UTF8__ 27 28 /** \file wzd_utf8.h 29 * \brief Functions operating on Unicode characters and UTF-8 strings. 30 */ 31 32 /** Detect if system is UTF-8 capable 33 */ 34 void utf8_detect(wzd_config_t * config); 35 36 /** Disable UTF-8 support, and free all memory used for unicode. 37 */ 38 void utf8_end(wzd_config_t * config); 39 40 const char * charset_detect_local(void); 41 42 const char * local_charset(void); 43 44 int local_charset_to_utf8(const char *src, char *dst_utf8, size_t max_len, const char *local_charset); 45 46 int utf8_to_local_charset(const char *src_utf8, char *dst, size_t max_len, const char *local_charset); 47 48 49 /** \brief Valid UTF-8 check 50 * 51 * taken from RFC2640, adapted to remove warnings :) 52 * Checks if a byte sequence is valid UTF-8. 53 * 54 * \return 1 if input string is valid UTF-8, else 0 55 */ 56 int utf8_valid(const char *buf, size_t len); 57 58 #endif /* __WZD_UTF8__ */ 59