Annotation of 43BSD/contrib/rn/only.c, revision 1.1.1.1

1.1       root        1: /* $Header: only.c,v 4.3 85/05/01 11:45:21 lwall Exp $
                      2:  *
                      3:  * $Log:       only.c,v $
                      4:  * Revision 4.3  85/05/01  11:45:21  lwall
                      5:  * Baseline for release with 4.3bsd.
                      6:  * 
                      7:  */
                      8: 
                      9: #include "EXTERN.h"
                     10: #include "common.h"
                     11: #include "search.h"
                     12: #include "util.h"
                     13: #include "final.h"
                     14: #include "ngsrch.h"
                     15: #include "INTERN.h"
                     16: #include "only.h"
                     17: 
                     18: void
                     19: only_init()
                     20: {
                     21:     ;
                     22: }
                     23: 
                     24: void
                     25: setngtodo(pat)
                     26: char *pat;
                     27: {
                     28:     char *s;
                     29: 
                     30: #ifdef ONLY
                     31:     if (!*pat)
                     32:        return;
                     33:     if (maxngtodo < NGMAX) {
                     34:        ngtodo[maxngtodo] = savestr(pat);
                     35: #ifdef SPEEDOVERMEM
                     36: #ifndef lint
                     37:        compextodo[maxngtodo] = (COMPEX*)safemalloc(sizeof(COMPEX));
                     38: #endif lint
                     39:        init_compex(compextodo[maxngtodo]);
                     40:        compile(compextodo[maxngtodo],pat,TRUE,TRUE);
                     41:        if ((s = ng_comp(compextodo[maxngtodo],pat,TRUE,TRUE)) != Nullch) {
                     42:                                            /* compile regular expression */
                     43:            printf("\n%s\n",s) FLUSH;
                     44:            finalize(1);
                     45:        }
                     46: #endif
                     47:        maxngtodo++;
                     48:     }
                     49: #else
                     50:     notincl("o");
                     51: #endif
                     52: }
                     53: 
                     54: /* if command line list is non-null, is this newsgroup wanted? */
                     55: 
                     56: bool
                     57: inlist(ngnam)
                     58: char *ngnam;
                     59: {
                     60: #ifdef ONLY
                     61:     register int i;
                     62: #ifdef SPEEDOVERMEM
                     63: 
                     64:     if (maxngtodo == 0)
                     65:        return TRUE;
                     66:     for (i=0; i<maxngtodo; i++) {
                     67:        if (execute(compextodo[i],ngnam))
                     68:            return TRUE;
                     69:     }
                     70:     return FALSE;
                     71: #else
                     72:     COMPEX ilcompex;
                     73:     char *s;
                     74: 
                     75:     if (maxngtodo == 0)
                     76:        return TRUE;
                     77:     init_compex(&ilcompex);
                     78:     for (i=0; i<maxngtodo; i++) {
                     79:        if ((s = ng_comp(&ilcompex,ngtodo[i],TRUE,TRUE)) != Nullch) {
                     80:                                            /* compile regular expression */
                     81:            printf("\n%s\n",s) FLUSH;
                     82:            finalize(1);
                     83:        }
                     84:        
                     85:        if (execute(&ilcompex,ngnam) != Nullch) {
                     86:            free_compex(&ilcompex);
                     87:            return TRUE;
                     88:        }
                     89:     }
                     90:     free_compex(&ilcompex);
                     91:     return FALSE;
                     92: #endif
                     93: #else
                     94:     return TRUE;
                     95: #endif
                     96: }
                     97: 
                     98: #ifdef ONLY
                     99: void
                    100: end_only()
                    101: {
                    102:     if (maxngtodo) {                   /* did they specify newsgroup(s) */
                    103:        int whicharg;
                    104: 
                    105: #ifdef VERBOSE
                    106:        IF(verbose)
                    107:            printf("\nRestriction %s%s removed.\n",ngtodo[0],
                    108:                maxngtodo > 1 ? ", etc." : nullstr) FLUSH;
                    109:        ELSE
                    110: #endif
                    111: #ifdef TERSE
                    112:            fputs("\nExiting \"only\".\n",stdout) FLUSH;
                    113: #endif
                    114:        for (whicharg = 0; whicharg < maxngtodo; whicharg++) {
                    115:            free(ngtodo[whicharg]);
                    116: #ifdef SPEEDOVERMEM
                    117:            free_compex(compextodo[whicharg]);
                    118: #ifndef lint
                    119:            free((char*)compextodo[whicharg]);
                    120: #endif lint
                    121: #endif
                    122:        }
                    123:        maxngtodo = 0;
                    124:     }
                    125: }
                    126: #endif

unix.superglobalmegacorp.com

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