diff options
author | jserv <jserv@99fdad57-331a-0410-800a-d7fa5415bdb3> | 2007-10-17 06:14:20 +0000 |
---|---|---|
committer | jserv <jserv@99fdad57-331a-0410-800a-d7fa5415bdb3> | 2007-10-17 06:14:20 +0000 |
commit | 7247d56f6787bc1c7e573c2b3df78d0d46fee9eb (patch) | |
tree | ad3cacff9f4f753bda3817b930edc0281becc438 /src/util | |
parent | 6a95defd8355634eabcacc088db4704d42499f1a (diff) |
Added 'Ask Status report' option in shell.
From: Andrzej Zaborowski <balrogg@gmail.com>
I also moved the .ask_ds field from struct gsmd_sms into struct
gsmd_sms_submit because it seemed more logical being a property
of SMS-SUBMIT PDU.
git-svn-id: http://svn.openmoko.org/trunk/src/target/gsm@3201 99fdad57-331a-0410-800a-d7fa5415bdb3
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/shell.c | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/src/util/shell.c b/src/util/shell.c index 63261ad..04076be 100644 --- a/src/util/shell.c +++ b/src/util/shell.c @@ -389,7 +389,7 @@ static int shell_help(void) "\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|[\"text\"])\n" + "\tss\tSMS Send (ss=ask_ds,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" @@ -615,33 +615,29 @@ int shell_main(struct lgsm_handle *lgsmh) struct lgsm_sms sms; ptr = strchr(buf, '='); + sms.ask_ds = atoi(ptr+1); fcomma = strchr(buf, ','); - 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, '"')) { + lcomma = strchr(fcomma+1, ','); + strncpy(sms.addr, fcomma+1, lcomma-fcomma-1); + sms.addr[lcomma-fcomma-1] = '\0'; + /* todo define \" to allow " in text */ + if (lcomma[1]=='"' && + !strchr(lcomma+2, '"')) { /* read until closing '"' */ rc = fscanf(stdin, "%[^\"]\"", - fcomma+strlen(fcomma)); + lcomma+strlen(lcomma)); 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); + lcomma++; + lcomma[strlen(lcomma)] = '\0'; } + printf("Send SMS\n"); + packing_7bit_character(lcomma+1, &sms); + + lgsm_sms_send(lgsmh, &sms); } else if ( !strncmp(buf, "sw", 2)) { printf("Write SMS\n"); struct lgsm_sms_write sms_write; @@ -655,6 +651,7 @@ int shell_main(struct lgsm_handle *lgsmh) sms_write.sms.addr[lcomma-fcomma-1] = '\0'; packing_7bit_character( lcomma+1, &sms_write.sms); + sms_write.sms.ask_ds = 0; lgsm_sms_write(lgsmh, &sms_write); } else if (!strncmp(buf, "sm", 2)) { |