From d8be565fc564cbd6e3beaddb3fc77b311abf2359 Mon Sep 17 00:00:00 2001 From: Brandon Bayer Date: Mon, 16 Nov 2015 09:59:15 -0600 Subject: feat: implement IRA->GSM character set encoding & decoding This adds support for certain characters like @ $ ~ ^ --- src/pdu.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/pdu.c') diff --git a/src/pdu.c b/src/pdu.c index 2ceb7ae..07a976c 100644 --- a/src/pdu.c +++ b/src/pdu.c @@ -36,6 +36,26 @@ #include "pdu.h" #include "sms_utils.h" +// ` is not a conversion, just a untranslatable letter +char strGSMTable[GSM_TABLE_SIZE] = { + '@','£','$','¥','è','é','ù','ì','ò','Ç','\n','Ø','ø','\r','Å','å', + 'Δ','_','Φ','Γ','Λ','Ω','Π','Ψ','Σ','Θ','Ξ','`','Æ','æ','ß','É', + ' ','!','\"','#','¤','%','&','\'','(',')','*','=',',','-','.','/', + '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','ä','ö','ñ','ü','à'}; +char strExtendedTable[GSM_TABLE_SIZE] = { + '`','`','`','`','`','`','`','`','`','`','`','`','`','`','`','`', + '`','`','`','`','^','`','`','`','`','`','`','`','`','`','`','`', + '`','`','`','`','`','`','`','`','{','}','`','`','`','`','`','\\', + '`','`','`','`','`','`','`','`','`','`','`','`','[','~',']','`', + '|','`','`','`','`','`','`','`','`','`','`','`','`','`','`','`', + '`','`','`','`','`','`','`','`','`','`','`','`','`','`','`','`', + '`','`','`','`','`','€','`','`','`','`','`','`','`','`','`','`', + '`','`','`','`','`','`','`','`','`','`','`','`','`','`','`','`'}; + int hex_nibble_scan(const char *buf, size_t len) { static const char digits[] = "0123456789ABCDEF"; -- cgit v1.2.3