Annotation of researchv10no/libj/menu.c, revision 1.1.1.1

1.1       root        1: #include "jerq.h"
                      2: #include "commands.h"
                      3: #include "io.h"
                      4: 
                      5: #define MAXMENU 20
                      6: Menu *menutab[MAXMENU];
                      7: 
                      8: static char **table;
                      9: 
                     10: static char *tablegen(i)
                     11: {
                     12:        return table[i];
                     13: }
                     14: 
                     15: int findMenu(m) Menu *m;
                     16: {      int i, j;
                     17:        char *s, *(*generator)();
                     18: 
                     19:        for (i=0; i<MAXMENU && menutab[i]!=m & menutab[i]!=(Menu *)NULL; i++) ;
                     20:        if (i==MAXMENU) i=nrand(MAXMENU);
                     21:        if (menutab[i]!=m) {
                     22:                menutab[i] = m;
                     23:                sendCommand(CCMENU);
                     24:                sendInt(i);
                     25:                generator = (table=m->item) ? tablegen : m->generator;
                     26:                for(j=0; s=(*generator)(j); ++j) ;
                     27:                sendInt(j);
                     28:                for(j=0; s=(*generator)(j); ++j) sendToChar(s);
                     29:        }
                     30:        return(i);
                     31: }
                     32: 
                     33: 
                     34: int menuhit(m, b) Menu *m; int b;
                     35: {      int i;
                     36:        i = findMenu(m);
                     37:        sendCommand(CCMENUHIT);
                     38:        sendInt(i);
                     39:        sendInt(b);
                     40:        flush();
                     41:        clearMouseQ();
                     42:        return recInt();
                     43: }
                     44: 

unix.superglobalmegacorp.com

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