home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume23 / trn / part06 / cheat.c next >
C/C++ Source or Header  |  1991-08-22  |  3KB  |  156 lines

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