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

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

unix.superglobalmegacorp.com

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