diff options
Diffstat (limited to 'packages/gsm/files/024_sms-text-in-bracket.patch')
-rw-r--r-- | packages/gsm/files/024_sms-text-in-bracket.patch | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/packages/gsm/files/024_sms-text-in-bracket.patch b/packages/gsm/files/024_sms-text-in-bracket.patch deleted file mode 100644 index 32a1ca33ff..0000000000 --- a/packages/gsm/files/024_sms-text-in-bracket.patch +++ /dev/null @@ -1,70 +0,0 @@ -http://bugzilla.openmoko.org/cgi-bin/bugzilla/show_bug.cgi?id=834 - -From: Kristian Mueller <kristian@mput.de> -Subject: [PATCH] libgsmd-tool does not allow sms with more than one word - -libgsmd-tool only allows for command strings without spaces. -SMS messages with more than one word will be parsed as multible commands. -The patch introduces SMS message text in bracket and fixes a NULL pointer -reference on mailformed "ss" commands. - -Signed-off-by: Jim Huang <jserv@openmoko.org> ---- - src/util/shell.c | 32 ++++++++++++++++++++++++++------ - 1 file changed, 26 insertions(+), 6 deletions(-) - -Index: gsm/src/util/shell.c -=================================================================== ---- gsm.orig/src/util/shell.c 2007-08-31 16:15:30.000000000 +0800 -+++ gsm/src/util/shell.c 2007-09-17 23:35:31.000000000 +0800 -@@ -389,7 +389,7 @@ - "\tsd\tSMS Delete (sd=index,delflg)\n" - "\tsl\tSMS List (sl=stat)\n" - "\tsr\tSMS Read (sr=index)\n" -- "\tss\tSMS Send (ss=number,text)\n" -+ "\tss\tSMS Send (ss=number,text|[\"text\"])\n" - "\tsw\tSMS Write (sw=stat,number,text)\n" - "\tsm\tSMS Storage stats\n" - "\tsM\tSMS Set preferred storage (sM=mem1,mem2,mem3)\n" -@@ -612,16 +612,36 @@ - - lgsm_sms_read(lgsmh, atoi(ptr+1)); - } else if ( !strncmp(buf, "ss", 2)) { -- printf("Send SMS\n"); - struct lgsm_sms sms; - - ptr = strchr(buf, '='); - fcomma = strchr(buf, ','); -- strncpy(sms.addr, ptr+1, fcomma-ptr-1); -- sms.addr[fcomma-ptr-1] = '\0'; -- packing_7bit_character(fcomma+1, &sms); -+ if (!ptr || !fcomma) { -+ printf("Wrong command format\n"); -+ } else { -+ strncpy(sms.addr, ptr+1, fcomma-ptr-1); -+ sms.addr[fcomma-ptr-1] = '\0'; -+ -+ /* todo define \" to allow " in text */ -+ if (fcomma[1] == '"' && -+ !strchr(fcomma+2, '"')) { -+ /* read until closing '"' */ -+ rc = fscanf(stdin, "%[^\"]\"", -+ fcomma+strlen(fcomma)); -+ if (rc == EOF) { -+ printf("EOF\n"); -+ return -1; -+ } -+ /* remove brackets */ -+ fcomma++; -+ fcomma[strlen(fcomma)] = '\0'; -+ } -+ -+ printf("Send SMS\n"); -+ packing_7bit_character(fcomma+1, &sms); - -- lgsm_sms_send(lgsmh, &sms); -+ lgsm_sms_send(lgsmh, &sms); -+ } - } else if ( !strncmp(buf, "sw", 2)) { - printf("Write SMS\n"); - struct lgsm_sms_write sms_write; |