diff options
| -rw-r--r-- | README | 2 | ||||
| -rw-r--r-- | blasms.c | 43 | 
2 files changed, 45 insertions, 0 deletions
| @@ -18,6 +18,8 @@ are available, allowing for text replacement.  The macros available are:    %n - replaced with the sender-number    %d - replaced with the send-date    %s - replaced with the SMS content +  %P - attempts to replace the second word in the SMS with a destination number\n" +       from phonebook.conf - SMS not processed if entry not found\n"  An example blasms.conf might be:    default echo \"SMS from %N at %d: %s\" @@ -67,6 +67,43 @@ void setname(char* telnum) {      }  } +/* Set a sender's number as part of their name */ +void settelnum(char* telnum, char* sms, int *offsetptr) { +    FILE *fp; +    char line[1024]; +    char name[1000]; +    char *strchrp; +    int offset = *offsetptr; + +    fp = fopen("phonebook.conf", "r"); + +    if (fp == NULL) { +        printf("Error opening blasms.conf.\n"); +        return; +    } + +    strcpy(name, sms + offset + 1); + +    if ((strchrp = strchr(name, ' ')) != NULL) { +        offset = strchrp - name; +        name[offset] = '\0'; +    } + +    while (fgets(line, 1024, fp) != NULL) { +        remtrailn(line); +        if ((strchrp = strchr(line, ' ')) != NULL) { +            offset = strchrp - line; +            if ((strlen(name) == strlen(line) - offset - 1) && !strncmp(name, line + offset + 1, strlen(name))) { +                //printf("Name match: %s\n", line); +                strxfrm(telnum, line, offset); +                telnum[offset] = '\0'; +            } +        } +    } + +    *offsetptr = offset; +} +  int main(int argc, char *argv[]) {      /* Telephone number (may contain name)*/      char telnum[100]; @@ -114,6 +151,8 @@ int main(int argc, char *argv[]) {                          "  %%n - replaced with the sender-number\n"                          "  %%d - replaced with the send-date\n"                          "  %%s - replaced with the SMS content\n" +                        "  %%P - attempts to replace the second word in the SMS with a destination number\n" +                        "       from phonebook.conf - SMS not processed if entry not found\n"                          "\n"                          "An example blasms.conf might be:\n"                          "  default echo \\\"SMS from %%N at %%d: %%s\\\"\n" @@ -199,6 +238,10 @@ int main(int argc, char *argv[]) {                  case 's':                      replacestr(systemcmd, i, sms + offset + 1);                      break; +                case 'P': +                    settelnum(telnum, sms, &offset); +                    replacestr(systemcmd, i, telnum); +                    break;              }          }      } | 
