gawk-patches

来自「ftam等标准协议服务器和客户端的源代码。」· 代码 · 共 799 行 · 第 1/2 页

TXT
799
字号
  	{ "END",	Node_illegal,		LEX_END,	0,	0 },  	{ "atan2",	Node_builtin,		LEX_BUILTIN,	0,	do_atan2 },+ #ifdef	SNMP+ 	{ "bit_and",	Node_builtin,		LEX_BUILTIN,	0,	do_band },+ 	{ "bit_or",	Node_builtin,		LEX_BUILTIN,	0,	do_bor },+ #endif  #ifdef DEBUG  	{ "bp",		Node_builtin,		LEX_BUILTIN,	0,	do_bp },  #endif****************** 1680,1686 ****--- 1692,1706 ----  	register NODE *r;    	if ((r = lookup(variables, name)) == NULL)+ #ifdef	SNMP+ 	{+ #endif  		r = install(variables, name,  			node(Nnull_string, Node_var, (NODE *) NULL));+ #ifdef	SNMP+ 		if (snmp_enabled && r)+ 		    snmp_check (r, name);+ 	}+ #endif  	return r;  }diff -rc gawk-2.11.orig/builtin.c builtin.c*** gawk-2.11.orig/builtin.c	Mon Nov 13 13:51:49 1989--- builtin.c	Mon May 20 15:16:07 1991****************** 533,538 ****--- 533,606 ----  		fflush(fp);  }  + #ifdef	SNMP+ NODE   *do_band (tree)+ NODE   *tree;+ {+ #ifdef	sun386+     long	l;+ #endif+     unsigned long d1,+ 		  d2;+     NODE   *s1,+ 	   *s2;+ +     get_two (tree, &s1, &s2);+ + #ifdef	sun386+     l = force_number (s1);+     d1 = (unsigned long) l;+ #else+     d1 = (unsigned long) force_number (s1);+ #endif+ + #ifdef	sun386+     l = force_number (s2);+     d2 = (unsigned long) l;+ #else+     d2 = (unsigned long) force_number (s2);+ #endif+ +     free_temp (s1);+     free_temp (s2);+ +     return tmp_number ((AWKNUM) ((unsigned long) (d1 & d2)));+ }+ + NODE   *do_bor (tree)+ NODE   *tree;+ {+ #ifdef	sun386+     long	l;+ #endif+     unsigned long d1,+ 		  d2;+     NODE   *s1,+ 	   *s2;+ +     get_two (tree, &s1, &s2);+ + #ifdef	sun386+     l = force_number (s1);+     d1 = (unsigned long) l;+ #else+     d1 = (unsigned long) force_number (s1);+ #endif+ + #ifdef	sun386+     l = force_number (s2);+     d2 = (unsigned long) l;+ #else+     d2 = (unsigned long) force_number (s2);+ #endif+ +     free_temp (s1);+     free_temp (s2);+ +     return tmp_number ((AWKNUM) ((unsigned long) (d1 | d2)));+ }+ #endif+   NODE *  do_sqrt(tree)  NODE *tree;****************** 971,977 ****--- 1039,1054 ----  		t = tmp;  		if (lhs)  			*lhs = tmp;+ #ifdef	SNMP+ 		if (SET_node)+ 		    snmp_set ();+ #endif  	}+ #ifdef	SNMP+ 	else+ 	    if (SET_node)+ 		SET_node = NULL;+ #endif  	lastbuf = t->stptr;  	do {  		if (re_search(rp, t->stptr, t->stlen, search_start,diff -rc gawk-2.11.orig/debug.c debug.c*** gawk-2.11.orig/debug.c	Mon Nov 13 13:51:51 1989--- debug.c	Fri Aug 17 15:14:59 1990****************** 107,114 ****--- 107,122 ----  		{  		struct search *l;  + #ifndef	SNMP  		printf("(0x%x Array)\n", ptr);  		for (l = assoc_scan(ptr); l; l = assoc_next(l)) {+ #else+ 		printf("(0x%x Array%s)\n", ptr,+ 		       ptr -> magic ? " {SNMP}": "");+ 		if (ptr -> magic)+ 		    return;+ 		for (l = assoc_scan(ptr); l; l = assoc_next(ptr, l)) {+ #endif  			printf("\tindex: ");  			print_parse_tree(l->retval);  			printf("\tvalue: ");****************** 344,349 ****--- 352,361 ----  			for (buc = variables[n]; buc; buc = buc->hnext) {  				if (buc->hvalue == ptr) {  					printf("%.*s", buc->hlength, buc->hname);+ #ifdef	SNMP+ 					if (ptr -> magic)+ 					    printf ("{SNMP}");+ #endif  					n = HASHSIZE;  					break;  				}diff -rc gawk-2.11.orig/eval.c eval.c*** gawk-2.11.orig/eval.c	Mon Nov 13 13:51:53 1989--- eval.c	Mon May 20 16:20:37 1991****************** 298,308 ****--- 298,321 ----  		PUSH_BINDING(loop_tag_stack, loop_tag, loop_tag_valid);  		DBG_P(("AFOR.VAR", tree->hakvar));  		lhs = (volatile NODE **) get_lhs(tree->hakvar, 1);+ #ifdef	SNMP+ 		if (SET_node)+ 		    fatal ("attempt to use SNMP %s variable \"%s\" unwisely",+ 			   tree -> hakvar -> type == Node_var ? "scalar"+ 							      : "array",+ 			   snmp_name (tree -> hakvar));+ #endif  		t = tree->arrvar;  		if (t->type == Node_param_list)  			t = stack_ptr[t->param_cnt];  		stable_tree = tree;+ #ifndef	SNMP  		for (l = assoc_scan(t); l; l = assoc_next((struct search *)l)) {+ #else+ 		for (l = assoc_scan (t, tree -> forloop -> cond);+ 			    l;+ 			    l = assoc_next (t, l)) {+ #endif  			deref = *((NODE **) lhs);  			do_deref();  			*lhs = dupnode(l->retval);****************** 318,323 ****--- 331,340 ----  				break;    			case TAG_BREAK:+ #ifdef	SNMP+ 				if (t -> magic)+ 				    (void) snmp_assoc_next (l, 1);+ #endif  				RESTORE_BINDING(loop_tag_stack, loop_tag, loop_tag_valid);  				field_num = -1;  				return 1;****************** 496,501 ****--- 513,522 ----  		r = tree_eval(tree->rnode);  		lhs = get_lhs(tree->lnode, 1);  		*lhs = dupnode(r);+ #ifdef	SNMP+ 		if (SET_node)+ 		    snmp_set ();+ #endif  		free_temp(r);  		do_deref();  		if (field_num == 0)****************** 683,688 ****--- 704,713 ----  	n->flags &= ~STR;  	n->stref = 0;  	deref = 0;+ #ifdef	SNMP+ 	if (SET_node)+ 	    snmp_set ();+ #endif  }    ****************** 916,922 ****--- 941,951 ----  		 */  		if (arg->type == Node_param_list)  			arg = stack_ptr[arg->param_cnt];+ #ifndef	SNMP  		if (arg->type == Node_var_array)+ #else+ 		if (arg -> type == Node_var_array && !arg -> magic)+ #endif  			*r = *arg;  		else {  			n = tree_eval(arg);****************** 984,989 ****--- 1013,1023 ----  		arg = argp->lnode;  		n = *sp++;  		if (arg->type == Node_var && n->type == Node_var_array) {+ #ifdef	SNMP+ 			if (arg -> magic)+ 			    fatal ("array assignment to SNMP scalar variable \"%s\"",+ 				   snmp_name (arg));+ #endif  			arg->var_array = n->var_array;  			arg->type = Node_var_array;  		}****************** 1035,1040 ****--- 1069,1088 ----  	switch (ptr->type) {  	case Node_var:  	case Node_var_array:+ #ifdef	SNMP+ 		if (ptr -> magic) {+ 		    snmp_get (ptr, (char *) NULL);+ + 		    if (assign) {+ 			if (SET_node)+ 			    fatal ("SET_node non-empty");+ 			SET_node = ptr;+ 			deref = SET_inst;+ 			do_deref ();+ 			SET_inst = NULL;+ 		    }+ 		}+ #endif  		if (ptr == NF_node && (int) NF_node->var_value->numbr == -1)  			(void) get_field(HUGE-1, assign); /* parse record */  		deref = ptr->var_value;****************** 1071,1077 ****--- 1119,1144 ----  		n = ptr->lnode;  		if (n->type == Node_param_list)  			n = stack_ptr[n->param_cnt];+ #ifdef	SNMP+ 		{+ 		    NODE   *subs = concat_exp (ptr -> rnode,+ 					       n -> magic ? 1 : 0);+ + 		    if (n -> magic && assign)+ 			subs = dupnode (subs);+ 		    aptr = assoc_lookup(n, subs);+ 		    if (n -> magic && assign) {+ 			if (SET_node)+ 			    fatal ("SET_node non-empty");+ 			SET_node = n;+ 			deref = SET_inst;+ 			do_deref ();+ 			SET_inst = subs;+ 		    }+ 		}+ #else  		aptr = assoc_lookup(n, concat_exp(ptr->rnode));+ #endif  		deref = *aptr;  #ifdef DEBUG  		if (deref->type != Node_val)diff -rc gawk-2.11.orig/io.c io.c*** gawk-2.11.orig/io.c	Mon Nov 13 13:52:07 1989--- io.c	Mon May 20 11:15:26 1991****************** 800,805 ****--- 800,809 ----  			return tmp_number((AWKNUM) 0.0);  		}  		*lhs = make_string(s, strlen(s));+ #ifdef	SNMP+ 		if (SET_node)+ 		    snmp_set ();+ #endif  		do_deref();  		/* we may have to regenerate $0 here! */  		if (field_num == 0)diff -rc gawk-2.11.orig/main.c main.c*** gawk-2.11.orig/main.c	Mon Nov 13 13:52:08 1989--- main.c	Fri Aug 17 17:00:30 1990****************** 94,101 ****--- 94,106 ----   */  #define EXTENSIONS	8	/* where to clear */  #ifdef DEBUG+ #ifndef	SNMP  char awk_opts[] = "F:f:v:caeCVdD";  #else+ char awk_opts[] = "F:f:v:caeCVdDsS";+ extern int debug;+ #endif+ #else  char awk_opts[] = "F:f:v:caeCV";  #endif  ****************** 192,198 ****--- 197,213 ----  			debugging++;  			yydebug = 2;  			break;+ + #ifdef	SNMP+ 		case 's':+ 			debug = 1;+ 			break;+ + 		case 'S':+ 			debug = 2;+ 			break;  #endif+ #endif    #ifndef STRICT  		case 'c':****************** 483,488 ****--- 498,512 ----  	RSTART_node = spc_var("RSTART", make_number(0.0));  	SUBSEP_node = spc_var("SUBSEP", make_string("\034", 1));  	IGNORECASE_node = spc_var("IGNORECASE", make_number(0.0));+ #ifdef	SNMP+ 	if (snmp_init ())+ 	    AGENT_node = spc_var ("AGENT", make_string ("localhost", 9));+ 	COMMUNITY_node = spc_var ("COMMUNITY", make_string ("public", 6));+ 	DIAGNOSTIC_node = spc_var ("DIAGNOSTIC", Nnull_string);+ 	ERROR_node = spc_var ("ERROR", make_number (0.0));+ 	RETRIES_node = spc_var ("RETRIES", make_number (3.0));+ 	TIMEOUT_node = spc_var ("TIMEOUT", make_number (10.0));+ #endif    	ENVIRON_node = spc_var("ENVIRON", Nnull_string);  	for (i = 0; environ[i]; i++) {diff -rc gawk-2.11.orig/node.c node.c*** gawk-2.11.orig/node.c	Mon Nov 13 13:52:13 1989--- node.c	Fri Aug 17 15:15:01 1990****************** 277,282 ****--- 277,285 ----  #endif  	it->type = ty;  	it->flags = MALLOC;+ #ifdef	SNMP+ 	it->magic = NULL;+ #endif  #ifdef MEMDEBUG  	fprintf(stderr, "node: new: %0x\n", it);  #endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?