diff options
author | Brandon Bayer <bbayer@multitech.com> | 2015-11-16 09:59:15 -0600 |
---|---|---|
committer | Brandon Bayer <bbayer@multitech.com> | 2015-11-17 09:27:36 -0600 |
commit | d8be565fc564cbd6e3beaddb3fc77b311abf2359 (patch) | |
tree | 5c6e960dee414104cd1e0ba227ac674bfc9cf7f1 /src/pdu.c | |
parent | f3b916f22265f3f173987e28d8fdc2c8a3502519 (diff) | |
download | sms-utils-d8be565fc564cbd6e3beaddb3fc77b311abf2359.tar.gz sms-utils-d8be565fc564cbd6e3beaddb3fc77b311abf2359.tar.bz2 sms-utils-d8be565fc564cbd6e3beaddb3fc77b311abf2359.zip |
feat: implement IRA->GSM character set encoding & decoding0.0.10
This adds support for certain characters like @ $ ~ ^
Diffstat (limited to 'src/pdu.c')
-rw-r--r-- | src/pdu.c | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -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"; |