home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / TELECOM / rn_4_3_blars.lzh / cheat.c < prev    next >
Text File  |  1990-08-22  |  3KB  |  153 lines

  1. /* $Header: cheat.c,v 4.3.2.2 89/11/27 01:30:18 sob Locked $
  2.  *
  3.  * $Log:    cheat.c,v $
  4.  * Revision 4.3.2.2  89/11/27  01:30:18  sob
  5.  * Altered NNTP code per ideas suggested by Bela Lubkin
  6.  * <filbo@gorn.santa-cruz.ca.us>
  7.  * 
  8.  * Revision 4.3.2.1  89/11/26  22:54:21  sob
  9.  * Added RRN support
  10.  * 
  11.  * Revision 4.3  85/05/01  11:36:46  lwall
  12.  * Baseline for release with 4.3bsd.
  13.  * 
  14.  */
  15.  
  16. #include "EXTERN.h"
  17. #include "common.h"
  18. #include "intrp.h"
  19. #include "search.h"
  20. #include "ng.h"
  21. #include "bits.h"
  22. #include "artio.h"
  23. #include "term.h"
  24. #include "artsrch.h"
  25. #include "head.h"
  26. #include "INTERN.h"
  27. #include "cheat.h"
  28.  
  29. /* see what we can do while they are reading */
  30.  
  31. #ifdef PENDING
  32. #   ifdef ARTSEARCH
  33.     COMPEX srchcompex;        /* compiled regex for searchahead */
  34. #   endif
  35. #endif
  36.  
  37. void
  38. cheat_init()
  39. {
  40.     ;
  41. }
  42.  
  43. #ifdef PENDING
  44. void
  45. look_ahead()
  46. {
  47. #ifdef ARTSEARCH
  48.     register char *h, *s;
  49.  
  50. #ifdef DEBUGGING
  51.     if (debug && srchahead) {
  52.     printf("(%ld)",(long)srchahead);
  53.     fflush(stdout);
  54.     }
  55. #endif
  56.     if (srchahead && srchahead < art) {    /* in ^N mode? */
  57.     char *pattern;
  58.  
  59.     pattern = buf+1;
  60.     strcpy(pattern,": *");
  61.     h = pattern + strlen(pattern);
  62.     interp(h,(sizeof buf) - (h-buf),"%s");
  63.     h[24] = '\0';        /* compensate for notesfiles */
  64.     while (*h) {
  65.         if (index("\\[.^*$'\"",*h) != Nullch)
  66.         *h++ = '.';
  67.         else
  68.         h++;
  69.     }
  70. #ifdef DEBUGGING
  71.     if (debug & DEB_SEARCH_AHEAD) {
  72.         fputs("(hit CR)",stdout);
  73.         fflush(stdout);
  74.         gets(buf+128);
  75.         printf("\npattern = %s\n",pattern);
  76.     }
  77. #endif
  78.     if ((s = compile(&srchcompex,pattern,TRUE,TRUE)) != Nullch) {
  79.                     /* compile regular expression */
  80.         printf("\n%s\n",s);
  81.         srchahead = 0;
  82.     }
  83.     if (srchahead) {
  84.         srchahead = art;
  85.         for (;;) {
  86.         srchahead++;    /* go forward one article */
  87.         if (srchahead > lastart) { /* out of articles? */
  88. #ifdef DEBUGGING
  89.             if (debug)
  90.             fputs("(not found)",stdout);
  91. #endif
  92.             break;
  93.         }
  94.         if (!was_read(srchahead) &&
  95.             wanted(&srchcompex,srchahead,0)) {
  96.                     /* does the shoe fit? */
  97. #ifdef DEBUGGING
  98.             if (debug)
  99.             printf("(%ld)",(long)srchahead);
  100. #endif
  101. #ifdef SERVER
  102.             nntpopen(srchahead,HEAD);
  103. #else
  104.             artopen(srchahead);
  105. #endif
  106.             break;
  107.         }
  108.         if (input_pending())
  109.             break;
  110.         }
  111.         fflush(stdout);
  112.     }
  113.     }
  114.     else
  115. #endif
  116.     {
  117.     if (art+1 <= lastart)/* how about a pre-fetch? */
  118. #ifdef SERVER
  119.         nntpopen(art+1,HEAD);    /* look for the next article */
  120. #else
  121.         artopen(art+1);    /* look for the next article */
  122. #endif
  123.     }
  124. }
  125. #endif
  126.  
  127. /* see what else we can do while they are reading */
  128.  
  129. void
  130. collect_subjects()
  131. {
  132. #ifdef PENDING
  133. # ifdef CACHESUBJ
  134.     ART_NUM oldart = openart;
  135.     ART_POS oldartpos;
  136.  
  137.     if (!in_ng || !srchahead)
  138.     return;
  139.     if (oldart)            /* remember where we were in art */
  140.     oldartpos = ftell(artfp);
  141.     if (srchahead >= subj_to_get)
  142.     subj_to_get = srchahead+1;
  143.     while (!input_pending() && subj_to_get <= lastart)
  144.     fetchsubj(subj_to_get++,FALSE,FALSE);
  145.     if (oldart) {
  146.     artopen(oldart);
  147.     fseek(artfp,oldartpos,0);    /* do not screw the pager */
  148.     }
  149. # endif
  150. #endif
  151. }
  152.  
  153.