Annotation of 43BSDTahoe/new/news/src/sendnews.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * sendnews - send news article by mail.
                      3:  */
                      4: 
                      5: #ifdef SCCSID
                      6: static char    *SccsId = "@(#)sendnews.c       2.13    9/24/87";
                      7: #endif /* SCCSID */
                      8: 
                      9: #include <stdio.h>
                     10: #include <ctype.h>
                     11: #include "defs.h"
                     12: 
                     13: char buffer[BUFSIZ];
                     14: 
                     15: int linecount, oflag = 0, aflag = 0, bflag = 0, toflag = 0;
                     16: 
                     17: extern FILE *popen();
                     18: 
                     19: /* ARGSUSED */
                     20: main(argc, argv)
                     21: char **argv;
                     22: {
                     23:        register FILE *out;
                     24:        char newsgroup[BUFSIZ];
                     25: 
                     26:        while (**(++argv) == '-') {
                     27:                if (*++*argv == 'o')
                     28:                        oflag++;
                     29:                else if (**argv == 'a')
                     30:                        aflag++;
                     31:                else if (**argv == 'b')
                     32:                        bflag++;
                     33:                else if (**argv == 'n')
                     34:                        strcpy(newsgroup, *(++argv));
                     35:        }
                     36:        if (aflag && bflag) {
                     37:                fprintf(stderr, "'-a' and '-b' options mutually exclusive.\n");
                     38:                exit(1);
                     39:        }
                     40: 
                     41: #ifdef DEBUG
                     42:        printf("/bin/mail %s\n", *argv);
                     43:        sprintf(buffer, "cat");
                     44: #else
                     45: #ifdef SENDMAIL
                     46:        (void) sprintf(buffer, "%s -i -odq %s", SENDMAIL, *argv);
                     47: #else /* !SENDMAIL */
                     48: #ifdef M_XENIX
                     49:        (void) sprintf(buffer, "/usr/bin/mail %s", *argv);
                     50: #else /* XENIX is not quite Unix.... */
                     51:        (void) sprintf(buffer, "/bin/mail %s", *argv);
                     52: #endif /* !M_XENIX */
                     53: #endif /* !SENDMAIL */
                     54: #endif
                     55:        if ((out = popen(buffer, "w")) == NULL) {
                     56:                perror(buffer);
                     57:                exit(1);
                     58:        }
                     59: 
                     60:        /* Standard mail prelude to make the formatters happy */
                     61:        fprintf(out, "Subject: network news article\n");
                     62:        fprintf(out, "To: %s\n\n", *argv);
                     63: 
                     64:        while (fgets(buffer, sizeof buffer, stdin)) {
                     65:                if (*newsgroup && ngline()) {
                     66:                        if (oflag)
                     67:                                sprintf(buffer, "%s\n", newsgroup);
                     68:                        else
                     69:                                sprintf(buffer, "Newsgroups: %s\n", newsgroup);
                     70:                }
                     71:                putc('N', out);
                     72:                fputs(buffer, out);
                     73:                if (ferror(out))
                     74:                        exit(1);
                     75:        }
                     76:        pclose(out);
                     77:        exit(0);
                     78: }
                     79: 
                     80: ngline()
                     81: {
                     82:        if (oflag)
                     83:                return linecount == 2;
                     84:        if (!toflag && (!strncmp("Newsgroups: ", buffer, 12) ||
                     85:                !strncmp("To: ",buffer, 4)))
                     86:                return ++toflag;
                     87:        return 0;
                     88: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.