Annotation of 43BSDReno/contrib/isode-beta/snmp/gawk-2.11/GAWK-PATCHES, revision 1.1

1.1     ! root        1: *** _Makefile  Mon Feb 19 22:43:02 1990
        !             2: --- Makefile   Thu Feb 22 22:04:21 1990
        !             3: ***************
        !             4: *** 81,90 ****
        !             5:   # Also choose just one of -g and -O.
        !             6:   #CC=          gcc
        !             7:   
        !             8: ! OPTIMIZE=    -O
        !             9:   PROFILE=     #-pg
        !            10:   DEBUG=               #-DDEBUG #-DMEMDEBUG #-DFUNC_TRACE #-DMPROF
        !            11: ! DEBUGGER=    #-g -Bstatic
        !            12:   WARN=                #-W -Wunused -Wimplicit -Wreturn-type -Wcomment # for gcc only
        !            13:   
        !            14:   # Parser to use on grammar -- if you don't have bison use the first one
        !            15: --- 81,90 ----
        !            16:   # Also choose just one of -g and -O.
        !            17:   #CC=          gcc
        !            18:   
        !            19: ! OPTIMIZE=    #-O
        !            20:   PROFILE=     #-pg
        !            21:   DEBUG=               #-DDEBUG #-DMEMDEBUG #-DFUNC_TRACE #-DMPROF
        !            22: ! DEBUGGER=    -g # -Bstatic
        !            23:   WARN=                #-W -Wunused -Wimplicit -Wreturn-type -Wcomment # for gcc only
        !            24:   
        !            25:   # Parser to use on grammar -- if you don't have bison use the first one
        !            26: ***************
        !            27: *** 102,113 ****
        !            28:   # need to customize this file below this point.
        !            29:   #
        !            30:   
        !            31: ! FLAGS= $(MISSING) $(DEBUG)
        !            32:   CFLAGS= $(FLAGS) $(DEBUGGER) $(PROFILE) $(OPTIMIZE) $(WARN)
        !            33:   
        !            34:   # object files
        !            35:   AWKOBJS = main.o eval.o builtin.o msg.o debug.o io.o field.o array.o node.o \
        !            36: !              version.o missing.o
        !            37:   
        !            38:   ALLOBJS = $(AWKOBJS) awk.tab.o
        !            39:   
        !            40: --- 102,116 ----
        !            41:   # need to customize this file below this point.
        !            42:   #
        !            43:   
        !            44: ! FLAGS= $(MISSING) $(DEBUG) -DSNMP
        !            45:   CFLAGS= $(FLAGS) $(DEBUGGER) $(PROFILE) $(OPTIMIZE) $(WARN)
        !            46: + SNMP-C       =       snmp.c
        !            47: + SNMP-O       =       snmp.o
        !            48: + SNMP-LIB=    -lisnmp -lisode
        !            49:   
        !            50:   # object files
        !            51:   AWKOBJS = main.o eval.o builtin.o msg.o debug.o io.o field.o array.o node.o \
        !            52: !              version.o missing.o $(SNMP-O)
        !            53:   
        !            54:   ALLOBJS = $(AWKOBJS) awk.tab.o
        !            55:   
        !            56: ***************
        !            57: *** 117,123 ****
        !            58:   
        !            59:   # source and documentation files
        !            60:   SRC =        main.c eval.c builtin.c msg.c \
        !            61: !      debug.c io.c field.c array.c node.c missing.c
        !            62:   
        !            63:   ALLSRC= $(SRC) awk.tab.c
        !            64:   
        !            65: --- 120,126 ----
        !            66:   
        !            67:   # source and documentation files
        !            68:   SRC =        main.c eval.c builtin.c msg.c \
        !            69: !      debug.c io.c field.c array.c node.c missing.c $(SNMP-C)
        !            70:   
        !            71:   ALLSRC= $(SRC) awk.tab.c
        !            72:   
        !            73: ***************
        !            74: *** 153,159 ****
        !            75:   
        !            76:   # rules to build gawk
        !            77:   gawk: $(ALLOBJS) $(GNUOBJS)
        !            78: !      $(CC) -o gawk $(CFLAGS) $(ALLOBJS) $(GNUOBJS) -lm
        !            79:   
        !            80:   $(AWKOBJS): awk.h
        !            81:   
        !            82: --- 156,162 ----
        !            83:   
        !            84:   # rules to build gawk
        !            85:   gawk: $(ALLOBJS) $(GNUOBJS)
        !            86: !      $(CC) -o gawk $(CFLAGS) $(ALLOBJS) $(GNUOBJS) $(SNMP-LIB) -lm
        !            87:   
        !            88:   $(AWKOBJS): awk.h
        !            89:   
        !            90: *** _array.c   Thu Aug 31 08:46:15 1989
        !            91: --- array.c    Fri Feb 23 06:49:17 1990
        !            92: ***************
        !            93: *** 35,41 ****
        !            94: --- 35,46 ----
        !            95:   #define MAKE_POS(v) (v & ~0x80000000)        /* make number positive */
        !            96:   
        !            97:   NODE *
        !            98: + #ifndef      SNMP
        !            99:   concat_exp(tree)
        !           100: + #else
        !           101: + concat_exp(tree,isnmp)
        !           102: + int  isnmp;
        !           103: + #endif
        !           104:   NODE *tree;
        !           105:   {
        !           106:        NODE *r;
        !           107: ***************
        !           108: *** 51,58 ****
        !           109: --- 56,73 ----
        !           110:        r = force_string(tree_eval(tree->lnode));
        !           111:        if (tree->rnode == NULL)
        !           112:                return r;
        !           113: + #ifdef       SNMP
        !           114: +      if (isnmp) {
        !           115: +          subseplen = Ndot_string -> stlen;
        !           116: +          subsep = Ndot_string -> stptr;
        !           117: +      }
        !           118: +      else {
        !           119: + #endif
        !           120:        subseplen = SUBSEP_node->lnode->stlen;
        !           121:        subsep = SUBSEP_node->lnode->stptr;
        !           122: + #ifdef       SNMP
        !           123: +      }
        !           124: + #endif
        !           125:        len = r->stlen + subseplen + 1;
        !           126:        emalloc(str, char *, len, "concat_exp");
        !           127:        s = str;
        !           128: ***************
        !           129: *** 90,95 ****
        !           130: --- 105,114 ----
        !           131:        int i;
        !           132:        NODE *bucket, *next;
        !           133:   
        !           134: + #ifdef       SNMP
        !           135: +      if (symbol -> magic)
        !           136: +          fatal ("split into SNMP array variable not allowed");
        !           137: + #endif
        !           138:        if (symbol->var_array == 0)
        !           139:                return;
        !           140:        for (i = 0; i < ASSOC_HASHSIZE; i++) {
        !           141: ***************
        !           142: *** 133,138 ****
        !           143: --- 152,162 ----
        !           144:   {
        !           145:        register NODE *bucket;
        !           146:   
        !           147: + #ifdef       SNMP
        !           148: +      if (symbol -> magic)
        !           149: +          fatal ("assoc_find: internal error");
        !           150: + #endif
        !           151: + 
        !           152:        for (bucket = symbol->var_array[hash1]; bucket; bucket = bucket->ahnext) {
        !           153:                if (cmp_nodes(bucket->ahname, subs))
        !           154:                        continue;
        !           155: ***************
        !           156: *** 152,160 ****
        !           157: --- 176,193 ----
        !           158:   
        !           159:        if (symbol->type == Node_param_list)
        !           160:                symbol = stack_ptr[symbol->param_cnt];
        !           161: + #ifdef       SNMP
        !           162: +      if (symbol -> magic)
        !           163: +          return *assoc_lookup (symbol, concat_exp (subs, 1))
        !           164: +                      != Nnull_string;
        !           165: + #endif
        !           166:        if (symbol->var_array == 0)
        !           167:                return 0;
        !           168: + #ifndef      SNMP
        !           169:        subs = concat_exp(subs);
        !           170: + #else
        !           171: +      subs = concat_exp(subs,0);
        !           172: + #endif
        !           173:        hash1 = hash_calc(subs);
        !           174:        if (assoc_find(symbol, subs, hash1) == NULL) {
        !           175:                free_temp(subs);
        !           176: ***************
        !           177: *** 181,186 ****
        !           178: --- 214,225 ----
        !           179:   
        !           180:        hash1 = hash_calc(subs);
        !           181:   
        !           182: + #ifdef       SNMP
        !           183: +      if (symbol -> magic) {
        !           184: +          snmp_get (symbol, force_string (subs) -> stptr);
        !           185: +          return &symbol -> var_value;
        !           186: +      }
        !           187: + #endif
        !           188:        if (symbol->var_array == 0) {   /* this table really should grow
        !           189:                                         * dynamically */
        !           190:                emalloc(symbol->var_array, NODE **, (sizeof(NODE *) *
        !           191: ***************
        !           192: *** 211,219 ****
        !           193: --- 250,266 ----
        !           194:        register NODE *bucket, *last;
        !           195:        NODE *subs;
        !           196:   
        !           197: + #ifdef       SNMP
        !           198: +      if (symbol -> magic)
        !           199: +          fatal ("delete into SNMP array variable not allowed");
        !           200: + #endif
        !           201:        if (symbol->var_array == 0)
        !           202:                return;
        !           203: + #ifndef      SNMP
        !           204:        subs = concat_exp(tree);
        !           205: + #else
        !           206: +      subs = concat_exp(tree,0);
        !           207: + #endif
        !           208:        hash1 = hash_calc(subs);
        !           209:   
        !           210:        last = NULL;
        !           211: ***************
        !           212: *** 240,245 ****
        !           213: --- 287,296 ----
        !           214:   {
        !           215:        struct search *lookat;
        !           216:   
        !           217: + #ifdef       SNMP
        !           218: +      if (symbol -> magic)
        !           219: +          return snmp_assoc_scan (symbol);
        !           220: + #endif
        !           221:        if (!symbol->var_array)
        !           222:                return 0;
        !           223:        emalloc(lookat, struct search *, sizeof(struct search), "assoc_scan");
        !           224: ***************
        !           225: *** 246,258 ****
        !           226: --- 297,322 ----
        !           227:        lookat->numleft = ASSOC_HASHSIZE;
        !           228:        lookat->arr_ptr = symbol->var_array;
        !           229:        lookat->bucket = symbol->var_array[0];
        !           230: + #ifndef      SNMP
        !           231:        return assoc_next(lookat);
        !           232: + #else
        !           233: +      return assoc_next(symbol, lookat);
        !           234: + #endif
        !           235:   }
        !           236:   
        !           237:   struct search *
        !           238: + #ifndef      SNMP
        !           239:   assoc_next(lookat)
        !           240: + #else
        !           241: + assoc_next(symbol, lookat)
        !           242: + NODE *symbol;
        !           243: + #endif
        !           244:   struct search *lookat;
        !           245:   {
        !           246: + #ifdef       SNMP
        !           247: +      if (symbol -> magic)
        !           248: +          return snmp_assoc_next (lookat, 0);
        !           249: + #endif
        !           250:        for (; lookat->numleft; lookat->numleft--) {
        !           251:                while (lookat->bucket != 0) {
        !           252:                        lookat->retval = lookat->bucket->ahname;
        !           253: *** _awk.h     Mon Oct 23 16:18:23 1989
        !           254: --- awk.h      Tue Mar  6 14:19:04 1990
        !           255: ***************
        !           256: *** 62,68 ****
        !           257:   #endif
        !           258:   
        !           259:   #ifdef __STDC__
        !           260: ! extern void *malloc(unsigned), *realloc(void *, unsigned);
        !           261:   extern void free(char *);
        !           262:   extern char *getenv(char *);
        !           263:   
        !           264: --- 62,68 ----
        !           265:   #endif
        !           266:   
        !           267:   #ifdef __STDC__
        !           268: ! extern char *malloc(unsigned), *realloc(void *, unsigned);
        !           269:   extern void free(char *);
        !           270:   extern char *getenv(char *);
        !           271:   
        !           272: ***************
        !           273: *** 237,242 ****
        !           274: --- 237,245 ----
        !           275:   
        !           276:        /* Variables */
        !           277:        Node_var,               /* rnode is value, lnode is array stuff */
        !           278: + #ifdef       SNMP
        !           279: +                              /* magic is pointer to (OT) */
        !           280: + #endif
        !           281:        Node_var_array,         /* array is ptr to elements, asize num of
        !           282:                                 * eles */
        !           283:        Node_val,               /* node is a value - type in flags */
        !           284: ***************
        !           285: *** 290,295 ****
        !           286: --- 293,301 ----
        !           287:                        char *name;
        !           288:                        short number;
        !           289:                        unsigned char recase;
        !           290: + #ifdef       SNMP
        !           291: +                      caddr_t cookie;
        !           292: + #endif
        !           293:                } nodep;
        !           294:                struct {
        !           295:                        AWKNUM fltnum;  /* this is here for optimal packing of
        !           296: ***************
        !           297: *** 333,338 ****
        !           298: --- 339,347 ----
        !           299:   #define lnode        sub.nodep.l.lptr
        !           300:   #define nextp        sub.nodep.l.nextnode
        !           301:   #define rnode        sub.nodep.r.rptr
        !           302: + #ifdef       SNMP
        !           303: + #define      magic   sub.nodep.cookie
        !           304: + #endif
        !           305:   #define source_file  sub.nodep.name
        !           306:   #define      source_line     sub.nodep.number
        !           307:   #define      param_cnt       sub.nodep.number
        !           308: ***************
        !           309: *** 525,531 ****
        !           310: --- 534,544 ----
        !           311:   extern       NODE **get_lhs(NODE *, int);
        !           312:   extern       void do_deref(void );
        !           313:   extern       struct search *assoc_scan(NODE *);
        !           314: + #ifndef      SNMP
        !           315:   extern       struct search *assoc_next(struct search *);
        !           316: + #else        SNMP
        !           317: + extern  struct search *assoc_next(NODE *symbol, struct search *lookat);
        !           318: + #endif       SNMP
        !           319:   extern       NODE **assoc_lookup(NODE *, NODE *);
        !           320:   extern       double r_force_number(NODE *);
        !           321:   extern       NODE *r_force_string(NODE *);
        !           322: ***************
        !           323: *** 596,598 ****
        !           324: --- 609,640 ----
        !           325:   #endif
        !           326:   
        !           327:   extern char casetable[];     /* for case-independent regexp matching */
        !           328: + 
        !           329: + 
        !           330: + #ifdef       SNMP
        !           331: + extern       NODE   *AGENT_node,
        !           332: +             *COMMUNITY_node,
        !           333: +             *DIAGNOSTIC_node,
        !           334: +             *ERROR_node,
        !           335: +             *RETRIES_node,
        !           336: +             *TIMEOUT_node;
        !           337: + 
        !           338: + extern       NODE   *Ndot_string;
        !           339: + 
        !           340: + extern       int     snmp_enabled;
        !           341: + extern       char   *snmp_file;
        !           342: + 
        !           343: + 
        !           344: + #ifdef       __STDC__
        !           345: + int check_snmp(NODE *r, char *name);
        !           346: + int snmp_get(NODE *ptr, char *instname);
        !           347: + char *snmp_name(NODE *ptr);
        !           348: + struct search *snmp_assoc_scan(NODE *symbol);
        !           349: + struct search *snmp_assoc_next(struct search *lookat, int done);
        !           350: + #else
        !           351: + int  check_snmp ();
        !           352: + int  snmp_get ();
        !           353: + char   *snmp_name ();
        !           354: + struct search *snmp_assoc_scan (), *snmp_assoc_next ();
        !           355: + #endif
        !           356: + #endif
        !           357: *** _awk.tab.c Tue Oct 24 13:37:57 1989
        !           358: --- awk.tab.c  Tue Feb 27 17:33:59 1990
        !           359: ***************
        !           360: *** 1930,1935 ****
        !           361: --- 1930,1938 ----
        !           362:        *do_split(),    *do_system(),   *do_int(),      *do_close(),
        !           363:        *do_atan2(),    *do_sin(),      *do_cos(),      *do_rand(),
        !           364:        *do_srand(),    *do_match(),    *do_tolower(),  *do_toupper(),
        !           365: + #ifdef       SNMP
        !           366: +      *do_band (),    *do_bor (),
        !           367: + #endif
        !           368:        *do_sub(),      *do_gsub();
        !           369:   
        !           370:   /* Special functions for debugging */
        !           371: ***************
        !           372: *** 1943,1948 ****
        !           373: --- 1946,1955 ----
        !           374:        { "BEGIN",      Node_illegal,           LEX_BEGIN,      0,      0 },
        !           375:        { "END",        Node_illegal,           LEX_END,        0,      0 },
        !           376:        { "atan2",      Node_builtin,           LEX_BUILTIN,    0,      do_atan2 },
        !           377: + #ifdef       SNMP
        !           378: +      { "bit_and",    Node_builtin,           LEX_BUILTIN,    0,      do_band },
        !           379: +      { "bit_or",     Node_builtin,           LEX_BUILTIN,    0,      do_bor },
        !           380: + #endif
        !           381:   #ifdef DEBUG
        !           382:        { "bp",         Node_builtin,           LEX_BUILTIN,    0,      do_bp },
        !           383:   #endif
        !           384: ***************
        !           385: *** 2926,2932 ****
        !           386: --- 2933,2947 ----
        !           387:        register NODE *r;
        !           388:   
        !           389:        if ((r = lookup(variables, name)) == NULL)
        !           390: + #ifdef       SNMP
        !           391: +      {
        !           392: + #endif
        !           393:                r = install(variables, name,
        !           394:                        node(Nnull_string, Node_var, (NODE *) NULL));
        !           395: + #ifdef       SNMP
        !           396: +              if (snmp_enabled && r)
        !           397: +                  check_snmp (r, name);
        !           398: +      }
        !           399: + #endif
        !           400:        return r;
        !           401:   }
        !           402: *** _awk.y     Wed Oct 18 08:02:07 1989
        !           403: --- awk.y      Tue Feb 27 17:33:31 1990
        !           404: ***************
        !           405: *** 684,689 ****
        !           406: --- 684,692 ----
        !           407:        *do_split(),    *do_system(),   *do_int(),      *do_close(),
        !           408:        *do_atan2(),    *do_sin(),      *do_cos(),      *do_rand(),
        !           409:        *do_srand(),    *do_match(),    *do_tolower(),  *do_toupper(),
        !           410: + #ifdef       SNMP
        !           411: +      *do_band (),    *do_bor (),
        !           412: + #endif
        !           413:        *do_sub(),      *do_gsub();
        !           414:   
        !           415:   /* Special functions for debugging */
        !           416: ***************
        !           417: *** 697,702 ****
        !           418: --- 700,709 ----
        !           419:        { "BEGIN",      Node_illegal,           LEX_BEGIN,      0,      0 },
        !           420:        { "END",        Node_illegal,           LEX_END,        0,      0 },
        !           421:        { "atan2",      Node_builtin,           LEX_BUILTIN,    0,      do_atan2 },
        !           422: + #ifdef       SNMP
        !           423: +      { "bit_and",    Node_builtin,           LEX_BUILTIN,    0,      do_band },
        !           424: +      { "bit_or",     Node_builtin,           LEX_BUILTIN,    0,      do_bor },
        !           425: + #endif
        !           426:   #ifdef DEBUG
        !           427:        { "bp",         Node_builtin,           LEX_BUILTIN,    0,      do_bp },
        !           428:   #endif
        !           429: ***************
        !           430: *** 1680,1686 ****
        !           431: --- 1687,1701 ----
        !           432:        register NODE *r;
        !           433:   
        !           434:        if ((r = lookup(variables, name)) == NULL)
        !           435: + #ifdef       SNMP
        !           436: +      {
        !           437: + #endif
        !           438:                r = install(variables, name,
        !           439:                        node(Nnull_string, Node_var, (NODE *) NULL));
        !           440: + #ifdef       SNMP
        !           441: +              if (snmp_enabled && r)
        !           442: +                  check_snmp (r, name);
        !           443: +      }
        !           444: + #endif
        !           445:        return r;
        !           446:   }
        !           447: *** _builtin.c Wed Oct 18 08:02:08 1989
        !           448: --- builtin.c  Tue Feb 27 17:33:32 1990
        !           449: ***************
        !           450: *** 535,540 ****
        !           451: --- 535,608 ----
        !           452:                fflush(fp);
        !           453:   }
        !           454:   
        !           455: + #ifdef       SNMP
        !           456: + NODE   *do_band (tree)
        !           457: + NODE   *tree;
        !           458: + {
        !           459: + #ifdef       sun386
        !           460: +     long     l;
        !           461: + #endif
        !           462: +     unsigned long d1,
        !           463: +                d2;
        !           464: +     NODE   *s1,
        !           465: +         *s2;
        !           466: + 
        !           467: +     get_two (tree, &s1, &s2);
        !           468: + 
        !           469: + #ifdef       sun386
        !           470: +     l = force_number (s1);
        !           471: +     d1 = (unsigned long) l;
        !           472: + #else
        !           473: +     d1 = (unsigned long) force_number (s1);
        !           474: + #endif
        !           475: + 
        !           476: + #ifdef       sun386
        !           477: +     l = force_number (s2);
        !           478: +     d2 = (unsigned long) l;
        !           479: + #else
        !           480: +     d2 = (unsigned long) force_number (s2);
        !           481: + #endif
        !           482: + 
        !           483: +     free_temp (s1);
        !           484: +     free_temp (s2);
        !           485: + 
        !           486: +     return tmp_number ((AWKNUM) ((unsigned long) (d1 & d2)));
        !           487: + }
        !           488: + 
        !           489: + NODE   *do_bor (tree)
        !           490: + NODE   *tree;
        !           491: + {
        !           492: + #ifdef       sun386
        !           493: +     long     l;
        !           494: + #endif
        !           495: +     unsigned long d1,
        !           496: +                d2;
        !           497: +     NODE   *s1,
        !           498: +         *s2;
        !           499: + 
        !           500: +     get_two (tree, &s1, &s2);
        !           501: + 
        !           502: + #ifdef       sun386
        !           503: +     l = force_number (s1);
        !           504: +     d1 = (unsigned long) l;
        !           505: + #else
        !           506: +     d1 = (unsigned long) force_number (s1);
        !           507: + #endif
        !           508: + 
        !           509: + #ifdef       sun386
        !           510: +     l = force_number (s2);
        !           511: +     d2 = (unsigned long) l;
        !           512: + #else
        !           513: +     d2 = (unsigned long) force_number (s2);
        !           514: + #endif
        !           515: + 
        !           516: +     free_temp (s1);
        !           517: +     free_temp (s2);
        !           518: + 
        !           519: +     return tmp_number ((AWKNUM) ((unsigned long) (d1 | d2)));
        !           520: + }
        !           521: + #endif
        !           522: + 
        !           523:   NODE *
        !           524:   do_sqrt(tree)
        !           525:   NODE *tree;
        !           526: *** _debug.c   Wed Aug  9 20:06:00 1989
        !           527: --- debug.c    Thu Feb 22 16:27:38 1990
        !           528: ***************
        !           529: *** 109,116 ****
        !           530: --- 109,124 ----
        !           531:                {
        !           532:                struct search *l;
        !           533:   
        !           534: + #ifndef      SNMP
        !           535:                printf("(0x%x Array)\n", ptr);
        !           536:                for (l = assoc_scan(ptr); l; l = assoc_next(l)) {
        !           537: + #else
        !           538: +              printf("(0x%x Array%s)\n", ptr,
        !           539: +                     ptr -> magic ? " {SNMP}": "");
        !           540: +              if (ptr -> magic)
        !           541: +                  return;
        !           542: +              for (l = assoc_scan(ptr); l; l = assoc_next(ptr, l)) {
        !           543: + #endif
        !           544:                        printf("\tindex: ");
        !           545:                        print_parse_tree(l->retval);
        !           546:                        printf("\tvalue: ");
        !           547: ***************
        !           548: *** 343,348 ****
        !           549: --- 351,360 ----
        !           550:                        for (buc = variables[n]; buc; buc = buc->hnext) {
        !           551:                                if (buc->hvalue == ptr) {
        !           552:                                        printf("%.*s", buc->hlength, buc->hname);
        !           553: + #ifdef       SNMP
        !           554: +                                      if (ptr -> magic)
        !           555: +                                          printf ("{SNMP}");
        !           556: + #endif
        !           557:                                        n = HASHSIZE;
        !           558:                                        break;
        !           559:                                }
        !           560: *** _eval.c    Wed Oct 18 08:02:09 1989
        !           561: --- eval.c     Tue Feb 27 08:33:06 1990
        !           562: ***************
        !           563: *** 302,308 ****
        !           564: --- 302,312 ----
        !           565:                if (t->type == Node_param_list)
        !           566:                        t = stack_ptr[t->param_cnt];
        !           567:                stable_tree = tree;
        !           568: + #ifndef      SNMP
        !           569:                for (l = assoc_scan(t); l; l = assoc_next((struct search *)l)) {
        !           570: + #else
        !           571: +              for (l = assoc_scan(t); l; l = assoc_next(t, l)) {
        !           572: + #endif
        !           573:                        deref = *((NODE **) lhs);
        !           574:                        do_deref();
        !           575:                        *lhs = dupnode(l->retval);
        !           576: ***************
        !           577: *** 318,323 ****
        !           578: --- 322,331 ----
        !           579:                                break;
        !           580:   
        !           581:                        case TAG_BREAK:
        !           582: + #ifdef       SNMP
        !           583: +                              if (t -> magic)
        !           584: +                                  (void) snmp_assoc_next (l, 1);
        !           585: + #endif
        !           586:                                RESTORE_BINDING(loop_tag_stack, loop_tag, loop_tag_valid);
        !           587:                                field_num = -1;
        !           588:                                return 1;
        !           589: ***************
        !           590: *** 912,918 ****
        !           591: --- 920,930 ----
        !           592:                 */
        !           593:                if (arg->type == Node_param_list)
        !           594:                        arg = stack_ptr[arg->param_cnt];
        !           595: + #ifndef      SNMP
        !           596:                if (arg->type == Node_var_array)
        !           597: + #else
        !           598: +              if (arg -> type == Node_var_array && !arg -> magic)
        !           599: + #endif
        !           600:                        *r = *arg;
        !           601:                else {
        !           602:                        n = tree_eval(arg);
        !           603: ***************
        !           604: *** 980,985 ****
        !           605: --- 992,1002 ----
        !           606:                arg = argp->lnode;
        !           607:                n = *sp++;
        !           608:                if (arg->type == Node_var && n->type == Node_var_array) {
        !           609: + #ifdef       SNMP
        !           610: +                      if (arg -> magic)
        !           611: +                          fatal ("array assignment to SNMP scalar variable \"%s\"",
        !           612: +                                 snmp_name (arg));
        !           613: + #endif
        !           614:                        arg->var_array = n->var_array;
        !           615:                        arg->type = Node_var_array;
        !           616:                }
        !           617: ***************
        !           618: *** 1031,1036 ****
        !           619: --- 1048,1062 ----
        !           620:        switch (ptr->type) {
        !           621:        case Node_var:
        !           622:        case Node_var_array:
        !           623: + #ifdef       SNMP
        !           624: +          if (ptr -> magic)
        !           625: +              if (assign)
        !           626: +                  fatal ("attempt to set SNMP %s variable \"%s\"",
        !           627: +                         ptr -> type == Node_var ? "scalar" : "array",
        !           628: +                         snmp_name (ptr));
        !           629: +              else
        !           630: +                  snmp_get (ptr, (char *) NULL);
        !           631: + #endif
        !           632:                if (ptr == NF_node && (int) NF_node->var_value->numbr == -1)
        !           633:                        (void) get_field(HUGE-1, assign); /* parse record */
        !           634:                deref = ptr->var_value;
        !           635: ***************
        !           636: *** 1067,1073 ****
        !           637: --- 1093,1107 ----
        !           638:                n = ptr->lnode;
        !           639:                if (n->type == Node_param_list)
        !           640:                        n = stack_ptr[n->param_cnt];
        !           641: + #ifdef       SNMP
        !           642: +              if (n -> magic && assign)
        !           643: +                  fatal ("attempt to set SNMP array variable \"%s\"",
        !           644: +                         snmp_name (n));
        !           645: +              aptr = assoc_lookup(n,
        !           646: +                                  concat_exp(ptr->rnode, n -> magic ? 1 : 0));
        !           647: + #else
        !           648:                aptr = assoc_lookup(n, concat_exp(ptr->rnode));
        !           649: + #endif
        !           650:                deref = *aptr;
        !           651:   #ifdef DEBUG
        !           652:                if (deref->type != Node_val)
        !           653: *** _main.c    Tue Oct 17 10:08:24 1989
        !           654: --- main.c     Mon Feb 26 17:18:48 1990
        !           655: ***************
        !           656: *** 94,101 ****
        !           657: --- 94,106 ----
        !           658:    */
        !           659:   #define EXTENSIONS   8       /* where to clear */
        !           660:   #ifdef DEBUG
        !           661: + #ifndef      SNMP
        !           662:   char awk_opts[] = "F:f:v:caeCVdD";
        !           663:   #else
        !           664: + char awk_opts[] = "F:f:v:caeCVdDsS";
        !           665: + extern int debug;
        !           666: + #endif
        !           667: + #else
        !           668:   char awk_opts[] = "F:f:v:caeCV";
        !           669:   #endif
        !           670:   
        !           671: ***************
        !           672: *** 189,195 ****
        !           673: --- 194,210 ----
        !           674:                        debugging++;
        !           675:                        yydebug = 2;
        !           676:                        break;
        !           677: + 
        !           678: + #ifdef       SNMP
        !           679: +              case 's':
        !           680: +                      debug = 1;
        !           681: +                      break;
        !           682: + 
        !           683: +              case 'S':
        !           684: +                      debug = 2;
        !           685: +                      break;
        !           686:   #endif
        !           687: + #endif
        !           688:   
        !           689:   #ifndef STRICT
        !           690:                case 'c':
        !           691: ***************
        !           692: *** 478,483 ****
        !           693: --- 493,506 ----
        !           694:        RSTART_node = spc_var("RSTART", make_number(0.0));
        !           695:        SUBSEP_node = spc_var("SUBSEP", make_string("\034", 1));
        !           696:        IGNORECASE_node = spc_var("IGNORECASE", make_number(0.0));
        !           697: + #ifdef       SNMP
        !           698: +      AGENT_node = spc_var ("AGENT", make_string ("localhost", 9));
        !           699: +      COMMUNITY_node = spc_var ("COMMUNITY", make_string ("public", 6));
        !           700: +      DIAGNOSTIC_node = spc_var ("DIAGNOSTIC", Nnull_string);
        !           701: +      ERROR_node = spc_var ("ERROR", make_number (0.0));
        !           702: +      RETRIES_node = spc_var ("RETRIES", make_number (3.0));
        !           703: +      TIMEOUT_node = spc_var ("TIMEOUT", make_number (10.0));
        !           704: + #endif
        !           705:   
        !           706:        ENVIRON_node = spc_var("ENVIRON", Nnull_string);
        !           707:        for (i = 0; environ[i]; i++) {
        !           708: *** _node.c    Wed Oct 11 15:57:31 1989
        !           709: --- node.c     Fri Feb 23 06:43:17 1990
        !           710: ***************
        !           711: *** 276,281 ****
        !           712: --- 276,284 ----
        !           713:   #endif
        !           714:        it->type = ty;
        !           715:        it->flags = MALLOC;
        !           716: + #ifdef       SNMP
        !           717: +      it->magic = NULL;
        !           718: + #endif
        !           719:   #ifdef MEMDEBUG
        !           720:        fprintf(stderr, "node: new: %0x\n", it);
        !           721:   #endif

unix.superglobalmegacorp.com

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