|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.