summaryrefslogtreecommitdiffstats
path: root/utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'utils.c')
-rw-r--r--utils.c87
1 files changed, 0 insertions, 87 deletions
diff --git a/utils.c b/utils.c
index f0215c8..164812e 100644
--- a/utils.c
+++ b/utils.c
@@ -61,93 +61,6 @@ void list_head_free(struct list_head *list)
free(list);
}
-/*
- * Converts ASCII (7 bits) data to GSM7 (8 bits)
- */
-int ascii2gsm7_ussd(char *data, unsigned char **data_enc, int length)
-{
- int d_off, d_pos, a_off, a_pos = 0;
- int i;
-
- int enc_length;
- unsigned char *enc;
-
- enc_length = ((length * 7) - (length * 7) % 8) / 8;
- enc_length += (length * 7) % 8 > 0 ? 1 : 0;
-
- // FIXME: why does Samsung do this?
- enc_length++;
-
- enc = malloc(enc_length);
- memset(enc, 0, enc_length);
-
- for (i = 0 ; i < length ; i++)
- {
- // offset from the right of data to keep
- d_off = i % 8;
-
- // position of the data we keep
- d_pos = ((i * 7) - (i * 7) % 8) / 8;
- d_pos += (i * 7) % 8 > 0 ? 1 : 0;
-
- // adding the data with correct offset
- enc[d_pos] |= data[i] >> d_off;
-
- // numbers of bits to omit to get data to add another place
- a_off = 8 - d_off;
- // position (on the encoded feed) of the data to add
- a_pos = d_pos - 1;
-
- // adding the data to add at the correct position
- enc[a_pos] |= data[i] << a_off;
- }
-
- *data_enc = enc;
-
- // FIXME: what is going on here?
- enc[enc_length - 2] |= 0x30;
- enc[enc_length - 1] = 0x02;
-
- return enc_length;
-}
-
-/* writes the utf8 character encoded in v
- * to the buffer utf8 at the specified offset
- */
-int utf8_write(char *utf8, int offset, int v)
-{
-
- int result;
-
- if (v < 0x80) {
- result = 1;
- if (utf8)
- utf8[offset] = (char)v;
- } else if (v < 0x800) {
- result = 2;
- if (utf8) {
- utf8[offset + 0] = (char)(0xc0 | (v >> 6));
- utf8[offset + 1] = (char)(0x80 | (v & 0x3f));
- }
- } else if (v < 0x10000) {
- result = 3;
- if (utf8) {
- utf8[offset + 0] = (char)(0xe0 | (v >> 12));
- utf8[offset + 1] = (char)(0x80 | ((v >> 6) & 0x3f));
- utf8[offset + 2] = (char)(0x80 | (v & 0x3f));
- }
- } else {
- result = 4;
- if (utf8) {
- utf8[offset + 0] = (char)(0xf0 | ((v >> 18) & 0x7));
- utf8[offset + 1] = (char)(0x80 | ((v >> 12) & 0x3f));
- utf8[offset + 2] = (char)(0x80 | ((v >> 6) & 0x3f));
- utf8[offset + 3] = (char)(0x80 | (v & 0x3f));
- }
- }
- return result;
-}
-
int data_dump(const void *data, size_t size)
{
unsigned int cols = 8;