diff -ru ../gnokii_orig/gnokii/gnokii.c ./gnokii/gnokii.c --- ../gnokii_orig/gnokii/gnokii.c Sat Apr 13 16:38:35 2002 +++ ./gnokii/gnokii.c Sun Apr 14 14:24:13 2002 @@ -3371,7 +3371,15 @@ int i1, i2, msgno, msgpart; static int unknown = 0; char c; - + + char number[MAX_BCD_STRING_LENGTH]; + char *p = message->RemoteNumber.number; + if (p[0] == '+') { + p++; + } + strcpy(number, p); + printf("SMS received from number: %s\n", number); + while (*s == 'W') s++; fprintf(stderr, _("Got message %d: %s\n"), i, s); @@ -3379,7 +3387,7 @@ sprintf(buf, "/tmp/sms/mail_%d_", msgno); else if (sscanf(s, "%d/%d:%d-%d-", &i1, &i2, &msgno, &msgpart) == 4) sprintf(buf, "/tmp/sms/mail_%d_%03d", msgno, msgpart); - else sprintf(buf, "/tmp/sms/unknown_%d_%d", getpid(), unknown++); + else sprintf(buf, "/tmp/sms/sms_%s_%d_%d", number, getpid(), unknown++); if ((output = fopen(buf, "r")) != NULL) { fprintf(stderr, _("### Exists?!\n")); return GE_CANTOPENFILE; @@ -3387,6 +3395,8 @@ output = fopen(buf, "w+"); if (strstr(buf, "unknown")) fprintf(output, "%s", message->UserData[0].u.Text); + else if (strstr(buf, "sms")) + fprintf(output, "%s", message->UserData[0].u.Text); else { s = message->UserData[0].u.Text; while (!(*s == '-')) diff -ru ../gnokii_orig/common/gsm-encoding.c ./common/gsm-encoding.c --- ../gnokii_orig/common/gsm-encoding.c Fri Apr 5 00:35:36 2002 +++ ./common/gsm-encoding.c Sun Apr 14 14:24:11 2002 @@ -379,7 +379,6 @@ break; case SMS_International: sprintf(Buffer, "+"); - length--; case SMS_Unknown: case SMS_National: case SMS_Network: