From f82442badc4a05ba915274868d28beb7960a6a61 Mon Sep 17 00:00:00 2001 From: Anders Broman Date: Fri, 23 Oct 2009 01:56:09 +0000 Subject: Move IA5_7BIT_decode to strutil.c svn path=/trunk/; revision=30669 --- epan/dissectors/packet-ansi_637.c | 50 +----------------------------------- epan/strutil.c | 54 +++++++++++++++++++++++++++++++++++++++ epan/strutil.h | 3 +++ 3 files changed, 58 insertions(+), 49 deletions(-) (limited to 'epan') diff --git a/epan/dissectors/packet-ansi_637.c b/epan/dissectors/packet-ansi_637.c index 31a3d84b78..7ac3815b4a 100644 --- a/epan/dissectors/packet-ansi_637.c +++ b/epan/dissectors/packet-ansi_637.c @@ -50,6 +50,7 @@ #include #include +#include static const char *ansi_proto_name_tele = "ANSI IS-637-A (SMS) Teleservice Layer"; @@ -247,27 +248,6 @@ static gunichar gsm_default_alphabet[GN_CHAR_ALPHABET_SIZE] = { }; -static gunichar IA5_default_alphabet[GN_CHAR_ALPHABET_SIZE] = { - - /*ITU-T recommendation T.50 specifies International Reference Alphabet 5 (IA5) */ - - '?', '?', '?', '?', '?', '?', '?', '?', - '?', '?', '?', '?', '?', '?', '?', '?', - '?', '?', '?', '?', '?', '?', '?', '?', - '?', '?', '?', '?', '?', '?', '?', '?', - ' ', '!', '\"','#', '$', '%', '&', '\'', - '(', ')', '*', '+', ',', '-', '.', '/', - '0', '1', '2', '3', '4', '5', '6', '7', - '8', '9', ':', ';', '<', '=', '>', '?', - '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', - 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', - 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', - 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', - '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', - 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', - 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', - 'x', 'y', 'z', '{', '|', '}', '~', '?' -}; static gboolean char_is_escape(unsigned char value) @@ -331,34 +311,6 @@ gsm_sms_char_7bit_ascii_decode(unsigned char * dest, const unsigned char* src, i -static gunichar -char_def_ia5_alphabet_decode(unsigned char value) -{ - if (value < GN_CHAR_ALPHABET_SIZE) - { - return IA5_default_alphabet[value]; - } - else - { - return '?'; - } -} - -static void -IA5_7BIT_decode(unsigned char * dest, const unsigned char* src, int len) -{ - int i, j; - gunichar buf; - - - for (i = 0, j = 0; j < len; j++) - { - buf = char_def_ia5_alphabet_decode(src[j]); - i += g_unichar_to_utf8(buf,&(dest[i])); - } - dest[i]=0; - return; -} static int diff --git a/epan/strutil.c b/epan/strutil.c index d3e2d19522..b2a77f54c7 100644 --- a/epan/strutil.c +++ b/epan/strutil.c @@ -1023,3 +1023,57 @@ escape_string(char *buf, const char *string) *bufp = '\0'; return buf; } + +#define GN_CHAR_ALPHABET_SIZE 128 + +static gunichar IA5_default_alphabet[GN_CHAR_ALPHABET_SIZE] = { + + /*ITU-T recommendation T.50 specifies International Reference Alphabet 5 (IA5) */ + + '?', '?', '?', '?', '?', '?', '?', '?', + '?', '?', '?', '?', '?', '?', '?', '?', + '?', '?', '?', '?', '?', '?', '?', '?', + '?', '?', '?', '?', '?', '?', '?', '?', + ' ', '!', '\"','#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '{', '|', '}', '~', '?' +}; + +static gunichar +char_def_ia5_alphabet_decode(unsigned char value) +{ + if (value < GN_CHAR_ALPHABET_SIZE) + { + return IA5_default_alphabet[value]; + } + else + { + return '?'; + } +} + +void +IA5_7BIT_decode(unsigned char * dest, const unsigned char* src, int len) +{ + int i, j; + gunichar buf; + + + for (i = 0, j = 0; j < len; j++) + { + buf = char_def_ia5_alphabet_decode(src[j]); + i += g_unichar_to_utf8(buf,&(dest[i])); + } + dest[i]=0; + return; +} + diff --git a/epan/strutil.h b/epan/strutil.h index 4305bf09b1..b48f29863b 100644 --- a/epan/strutil.h +++ b/epan/strutil.h @@ -225,4 +225,7 @@ const char * string_or_null(const char *string); int escape_string_len(const char *string); char * escape_string(char *dst, const char *string); + +void IA5_7BIT_decode(unsigned char * dest, const unsigned char* src, int len); + #endif /* __STRUTIL_H__ */ -- cgit v1.2.3