home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / new / comm / bbs / eazybbs / source / news2eazy.c < prev    next >
C/C++ Source or Header  |  1994-09-08  |  2KB  |  126 lines

  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <time.h>
  6. #include <proto/dos.h>
  7. #include <proto/exec.h>
  8.  
  9.  
  10.  
  11. #define VERSION "1.7"
  12. static char *version = "\0$VER: news2eazy " VERSION " (" __AMIGADATE__ ")";
  13.  
  14.  
  15.  
  16. void space2under(char *s)
  17. {
  18.     while (s && *s) {
  19.         if (*s == ' ')
  20.             *s = '_';
  21.         s++;
  22.     }
  23. }
  24.  
  25.  
  26.  
  27. void kill_quotes(char *s)
  28. {
  29.     while (s && *s) {
  30.         if (*s == '\"')
  31.             *s = '\'';
  32.         s++;
  33.     }
  34. }
  35.  
  36.  
  37.  
  38. int main(int argc, char *argv[])
  39. {
  40.     if (argc == 3) {
  41.         char tmp[80];
  42.         FILE *fp;
  43.  
  44.         sprintf(tmp, "%s%ld", "MB_TMP:News2Eazy.tmp", (long) FindTask(NULL));
  45.  
  46.         if (fp = fopen(tmp, "w")) {
  47.             register int c = 0;
  48.             char username[256];
  49.             char uucpadr[256];
  50.             char *board1 = argv[1];
  51.             char *board2 = argv[2];
  52.             char subject[256];
  53.             char exec[256];
  54.             char str[1024];
  55.             BOOL ende = FALSE;
  56.  
  57.             strcpy(username, "unknown");
  58.             strcpy(subject, "none");
  59.             strcpy(uucpadr, "");
  60.  
  61.             while (!ende && fgets(str, 1023, stdin)) {
  62.                 if (strlen(str) == 0 || strcmp(str, "\n") == 0)
  63.                     ende = TRUE;
  64.                 else if ((strnicmp(str, "From: ", 6) == 0 && strlen(uucpadr) == 0) || strnicmp(str, "Reply-To: ", 10) == 0) {
  65.                     char *p;
  66.                     char *str2;
  67.                     str2 = strstr(str, ": ") + 2;
  68.  
  69.                     strcpy(uucpadr, str2);
  70.                     kill_quotes(uucpadr);
  71.                     if (strchr(uucpadr, '\n'))
  72.                         *strchr(uucpadr, '\n') = 0;
  73.  
  74. #if 0
  75.                     strcpy(username, str2);
  76.                     p = username;
  77.                     while (*p && *p != '@') {
  78.                         p++;
  79.                     }
  80.                     if (*p == '@')
  81.                         *p = 0;
  82. #endif
  83.                     if (p = strchr(str2, '@')) {
  84.                         int pos;
  85.                         for (pos = 0, p--; p >= str2 && *p != ' ' && *p != '\t' && *p != '<'; p--)
  86.                             username[pos++] = *p;
  87.                         username[pos] = 0;
  88.                         strrev(username);
  89.                     }
  90.  
  91.                     if (strchr(username, '\n'))
  92.                         *strchr(username, '\n') = 0;
  93.                     username[15] = 0;
  94.                     kill_quotes(username);
  95.                 }
  96.                 else if (strnicmp(str, "Subject: ", 9) == 0) {
  97.                     strcpy(subject, str + 9);
  98.                     kill_quotes(subject);
  99.                     if (strchr(subject, '\n'))
  100.                         *strchr(subject, '\n') = 0;
  101.                     subject[40] = 0;
  102.                 }
  103.             }
  104.  
  105.             while ((c = fgetc(stdin)) != EOF) {
  106.                 if (c == '\\')
  107.                     fputc('\\', fp);
  108.                 fputc(c, fp);
  109.             }
  110.             fprintf(fp, "\n");
  111.  
  112.             fclose(fp);
  113.  
  114.             sprintf(exec, "MB:C/ImportMessage \"%s\" \"%s\" \"%s\" \"%s\" \"%s\" \"%s\"", board1, board2, username, uucpadr, subject, tmp);
  115.             System(exec, NULL);
  116.             DeleteFile(tmp);
  117.         }
  118.     }
  119.     else {
  120.         fprintf(stderr, "\033[1;33mEazyBBS\033[0m © 1988-1994 Andreas M. Kirchwitz\n"
  121.         "Usage: news2eazy \033[3m<board1> <board2> \033[0m <text\n");
  122.     }
  123.  
  124.     exit(0);
  125. }
  126.