Now able to report the encoding of an incoming message
This commit is contained in:
parent
5988a39a43
commit
fbecdf8628
@ -635,10 +635,10 @@ int gsm_event(GSM * gsm, GSMEventType type, ...)
|
||||
unsigned int);
|
||||
break;
|
||||
case GSM_EVENT_TYPE_MESSAGE:
|
||||
/* FIXME implement correctly */
|
||||
event->message.index = va_arg(ap, unsigned int);
|
||||
event->message.number = va_arg(ap, char const *);
|
||||
event->message.date = va_arg(ap, time_t);
|
||||
event->message.encoding = va_arg(ap, GSMEncoding);
|
||||
event->message.length = va_arg(ap, unsigned int);
|
||||
event->message.content = va_arg(ap, char const *);
|
||||
break;
|
||||
@ -1459,6 +1459,7 @@ static int _gsm_trigger_cmgr(GSM * gsm, char const * result)
|
||||
/* message content */
|
||||
if(*length == 0) /* XXX assumes this is text mode */
|
||||
{
|
||||
gsm->event.message.encoding = GSM_ENCODING_UTF8;
|
||||
gsm->event.message.content = result;
|
||||
*length = strlen(result);
|
||||
_gsm_event_send(gsm, GSM_EVENT_TYPE_MESSAGE);
|
||||
@ -1478,6 +1479,7 @@ static int _gsm_trigger_cmgr(GSM * gsm, char const * result)
|
||||
}
|
||||
*length = strlen(p); /* XXX should not be necessary */
|
||||
gsm->event.message.number = gsm->number; /* XXX ugly */
|
||||
gsm->event.message.encoding = GSM_ENCODING_UTF8;
|
||||
gsm->event.message.content = p;
|
||||
_gsm_event_send(gsm, GSM_EVENT_TYPE_MESSAGE);
|
||||
free(p);
|
||||
|
@ -259,7 +259,8 @@ typedef union _GSMEvent
|
||||
unsigned int index;
|
||||
char const * number;
|
||||
time_t date;
|
||||
unsigned int length; /* XXX may be removed */
|
||||
GSMEncoding encoding;
|
||||
unsigned int length;
|
||||
char const * content;
|
||||
} message;
|
||||
|
||||
|
@ -2371,7 +2371,7 @@ static int _phone_gsm_event(GSMEvent * event, gpointer data)
|
||||
event->incoming_message.index);
|
||||
return 0;
|
||||
case GSM_EVENT_TYPE_MESSAGE:
|
||||
encoding = PHONE_ENCODING_UTF8; /* XXX may not be */
|
||||
encoding = event->message.encoding;
|
||||
if((content = malloc(event->message.length)) == NULL)
|
||||
return 1; /* XXX report error */
|
||||
memcpy(content, event->message.content,
|
||||
@ -2379,6 +2379,7 @@ static int _phone_gsm_event(GSMEvent * event, gpointer data)
|
||||
phone_event(phone, PHONE_EVENT_SMS_RECEIVING, &encoding,
|
||||
&content, &event->message.length);
|
||||
phone_event(phone, PHONE_EVENT_SMS_RECEIVED);
|
||||
/* FIXME may be unsuitable (eg not UTF-8...) */
|
||||
phone_messages_set(phone, event->message.index,
|
||||
event->message.number,
|
||||
event->message.date, content);
|
||||
|
Loading…
Reference in New Issue
Block a user