X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=lib%2Fsilcutil%2Fsilcstrutil.h;h=35e9781227bbbf520bceafcf5318ba32ab9d476e;hp=e29be0724152d616371c53980e236a9488b3c3ac;hb=413da0f8686910f5e627393157566ae729ca99c4;hpb=050bd9d9e5d843220f3f393a18ab5011622237b9 diff --git a/lib/silcutil/silcstrutil.h b/lib/silcutil/silcstrutil.h index e29be072..35e97812 100644 --- a/lib/silcutil/silcstrutil.h +++ b/lib/silcutil/silcstrutil.h @@ -4,7 +4,7 @@ Author: Pekka Riikonen - Copyright (C) 2002 Pekka Riikonen + Copyright (C) 2002 - 2003 Pekka Riikonen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,9 +21,9 @@ * * DESCRIPTION * - * String manipulation utility routines. These routines provides - * various helper functions for encoding, decoding and otherwise - * managing strings. + * String manipulation utility routines. These routines provides + * various helper functions for encoding, decoding and otherwise + * managing strings. * ***/ @@ -83,20 +83,22 @@ unsigned char *silc_pem_decode(unsigned char *pem, SilcUInt32 pem_len, * DESCRIPTION * * String encoding definitions used with the UTF-8 encoding and - * decoding functions. + * decoding functions. By default, systems should use SILC_STRING_LANGUAGE + * since it encodes and decodes correctly according to local system + * language and character set. * * SOURCE */ typedef enum { - SILC_STRING_ASCII = 0, /* Any 8 bit ASCII encoding (default) */ - SILC_STRING_ASCII_ESC = 1, /* 7 bit ASCII (>0x7f escaped) */ - SILC_STRING_BMP = 2, /* 16 bit, UCS-2, BMP, ISO/IEC 10646 */ - SILC_STRING_BMP_LSB = 3, /* BMP, least significant byte first */ - SILC_STRING_UNIVERSAL = 4, /* 32 bit, UCS-4, Universal, ISO/IEC 10646 */ - SILC_STRING_UNIVERSAL_LSB = 5, /* Universal, least significant byte first */ - SILC_STRING_LANGUAGE = 6, /* Language and charset specific conversion - on those platforms that support iconv(). - Fallback is SILC_STRING_ASCII. */ + SILC_STRING_ASCII = 0, /* Any 8 bit ASCII encoding (default) */ + SILC_STRING_ASCII_ESC = 1, /* 7 bit ASCII (>0x7f escaped) */ + SILC_STRING_BMP = 2, /* 16 bit, UCS-2, BMP, ISO/IEC 10646 */ + SILC_STRING_BMP_LSB = 3, /* BMP, least significant byte first */ + SILC_STRING_UNIVERSAL = 4, /* 32 bit, UCS-4, Universal, ISO/IEC 10646 */ + SILC_STRING_UNIVERSAL_LSB = 5, /* Universal, least significant byte first */ + SILC_STRING_LANGUAGE = 6, /* Language and charset specific conversion + on those platforms that support iconv(). + Fallback is SILC_STRING_ASCII. */ } SilcStringEncoding; /***/ @@ -161,6 +163,23 @@ SilcUInt32 silc_utf8_decode(const unsigned char *utf8, SilcUInt32 utf8_len, SilcUInt32 silc_utf8_encoded_len(const unsigned char *bin, SilcUInt32 bin_len, SilcStringEncoding bin_encoding); +/****f* silcutil/SilcStrUtilAPI/silc_utf8_decoded_len + * + * SYNOPSIS + * + * SilcUInt32 silc_utf8_decoded_len(const unsigned char *bin, + * SilcUInt32 bin_len, + * SilcStringEncoding bin_encoding); + * + * DESCRIPTION + * + * Returns the length of decoded string if the `bin' of encoding of + * `bin_encoding' is decoded with silc_utf8_decode. + * + ***/ +SilcUInt32 silc_utf8_decoded_len(const unsigned char *bin, SilcUInt32 bin_len, + SilcStringEncoding bin_encoding); + /****f* silcutil/SilcStrUtilAPI/silc_utf8_valid * * SYNOPSIS