gawk-patches

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

TXT
781
字号
*** 1716,1722 ****--- 1728,1742 ----  		env_loaded = 1;  	}  	if ((r = lookup(name)) == NULL)+ #ifdef	SNMP+ 	{+ #endif  		r = install(name, node(Nnull_string, Node_var, (NODE *) NULL));+ #ifdef	SNMP+ 		if (snmp_enabled && r)+ 		    snmp_check (r, name);+ 	}+ #endif  	else if (can_free)  		free(name);  	return r;diff -rc gawk-2.13.orig/builtin.c gawk-2.13/builtin.c*** gawk-2.13.orig/builtin.c	Wed Jun 19 05:30:27 1991--- gawk-2.13/builtin.c	Wed Dec 11 21:58:10 1991****************** 605,610 ****--- 605,648 ----  	}  }  + #ifdef	SNMP+ NODE   *do_band (tree)+ NODE   *tree;+ {+     unsigned long d1,+ 		  d2;+     NODE   *s1,+ 	   *s2;+ +     s1 = tree_eval (tree -> lnode);+     s2 = tree_eval (tree -> rnode -> lnode);+     d1 = force_number (s1);+     d2 = force_number (s2);+     free_temp (s1);+     free_temp (s2);+ +     return tmp_number ((AWKNUM) ((unsigned long) (d1 & d2)));+ }+ + NODE   *do_bor (tree)+ NODE   *tree;+ {+     unsigned long d1,+ 		  d2;+     NODE   *s1,+ 	   *s2;+ +     s1 = tree_eval (tree -> lnode);+     s2 = tree_eval (tree -> rnode -> lnode);+     d1 = force_number (s1);+     d2 = force_number (s2);+     free_temp (s1);+     free_temp (s2);+ +     return tmp_number ((AWKNUM) ((unsigned long) (d1 | d2)));+ }+ #endif+   NODE *  do_sqrt(tree)  NODE *tree;****************** 981,986 ****--- 1019,1029 ----  		t = tmp;  		priv = 1;  	}+ #ifdef	SNMP+ 	else+ 	    if (SET_node)+ 		SET_node = NULL;+ #endif  	text = t->stptr;  	textlen = t->stlen;  ****************** 1064,1069 ****--- 1107,1116 ----  		if (priv) {  			unref(*lhs);  			*lhs = t;+ #ifdef	SNMP+ 			if (SET_node)+ 			    snmp_set ();+ #endif  		}  		if (after_assign)  			(*after_assign)();Common subdirectories: gawk-2.13.orig/config and gawk-2.13/configOnly in gawk-2.13: config.hdiff -rc gawk-2.13.orig/eval.c gawk-2.13/eval.c*** gawk-2.13.orig/eval.c	Mon Jul  8 19:08:58 1991--- gawk-2.13/eval.c	Thu Dec 12 01:16:20 1991****************** 254,266 ****--- 254,278 ----  #define arrvar forloop->incr  		PUSH_BINDING(loop_tag_stack, loop_tag, loop_tag_valid);  		lhs = (volatile NODE **) get_lhs(tree->hakvar, &after_assign);+ #ifdef	SNMP+ 		if (SET_node)+ 		    fatal ("attempt to use SNMP variable \"%s\" unwisely",+ 			   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 (assoc_scan(t, (struct search *)&l);  		     l.retval;  		     assoc_next((struct search *)&l)) {+ #else+ 		for (assoc_scan(t, (struct search *)&l,+ 				tree -> forloop -> cond);+ 		     l.retval;+ 		     assoc_next(t, (struct search *)&l)) {+ #endif  			unref(*((NODE **) lhs));  			*lhs = dupnode(l.retval);  			if (after_assign)****************** 272,277 ****--- 284,293 ----  				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);  				return 1;  			default:****************** 361,367 ****  	long lx2;  #endif  ! #ifdef DEBUG  	if (tree == NULL)  		return Nnull_string;  	if (tree->type == Node_val) {--- 377,383 ----  	long lx2;  #endif  ! #ifdef	DEBUG  	if (tree == NULL)  		return Nnull_string;  	if (tree->type == Node_val) {****************** 373,381 ****  		return tree->var_value;  	}  	if (tree->type == Node_param_list)! 		return (stack_ptr[(_t)->param_cnt])->var_value;  #endif  	switch (tree->type) {  	case Node_and:  		return tmp_number((AWKNUM) (eval_condition(tree->lnode)  					    && eval_condition(tree->rnode)));--- 389,405 ----  		return tree->var_value;  	}  	if (tree->type == Node_param_list)! 		return (stack_ptr[tree->param_cnt])->var_value;  #endif  	switch (tree->type) {+ #ifdef	SNMP+ 	case Node_var_array:+ 	    if (!tree -> magic)+ 		break;+ 	    snmp_get (tree, (char *) NULL);+ 	    return tree -> var_value;+ #endif+   	case Node_and:  		return tmp_number((AWKNUM) (eval_condition(tree->lnode)  					    && eval_condition(tree->rnode)));****************** 447,452 ****--- 471,480 ----  		lhs = get_lhs(tree->lnode, &after_assign);  		unref(*lhs);  		*lhs = dupnode(r);+ #ifdef	SNMP+ 		if (SET_node)+ 		    snmp_set ();+ #endif  		free_temp(r);  		if (after_assign)  			(*after_assign)();****************** 841,847 ****--- 869,879 ----  		 */  		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);****************** 912,917 ****--- 944,954 ----  			arg = stack_ptr[arg->param_cnt];  		n = *sp++;  		if (arg->type == Node_var && n->type == Node_var_array) {+ #ifdef	SNMP+ 			if (arg -> magic)+ 			    fatal ("array assignment to SNMP variable \"%s\"",+ 				   snmp_name (arg));+ #endif  			arg->var_array = n->var_array;  			arg->type = Node_var_array;  		}****************** 955,960 ****--- 992,1013 ----    	switch (ptr->type) {  	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;+ 			unref (SET_inst);+ 			SET_inst = NULL;+ 		    }+ + 		    aptr = &(ptr->var_value);+ 		    break;+ 		}+ #endif  		fatal("attempt to use an array in a scalar context");  	case Node_var:  		aptr = &(ptr->var_value);****************** 1066,1072 ****--- 1119,1143 ----  		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;+ 			unref (SET_inst);+ 			SET_inst = subs;+ 		    }+ 		}+ #else  		aptr = assoc_lookup(n, concat_exp(ptr->rnode));+ #endif  		break;    	case Node_func:diff -rc gawk-2.13.orig/io.c gawk-2.13/io.c*** gawk-2.13.orig/io.c	Tue Jun 18 11:58:47 1991--- gawk-2.13/io.c	Wed Dec 11 21:54:17 1991****************** 738,743 ****--- 738,747 ----  		}  		unref(*lhs);  		*lhs = make_string(s, strlen(s));+ #ifdef	SNMP+ 		if (SET_node)+ 		    snmp_set ();+ #endif  		/* we may have to regenerate $0 here! */  		if (after_assign)  			(*after_assign)();diff -rc gawk-2.13.orig/main.c gawk-2.13/main.c*** gawk-2.13.orig/main.c	Sat Jul  6 12:20:21 1991--- gawk-2.13/main.c	Wed Dec 11 22:56:40 1991****************** 102,112 ****--- 102,121 ----   *   * Note that after 2.13, c,a,e,C,D, and V go away.   */+ #ifndef	SNMP  #ifdef DEBUG  char awk_opts[] = "F:f:v:W:caeCVD";  #else  char awk_opts[] = "F:f:v:W:caeCV";  #endif+ #else+ #ifdef DEBUG+ char awk_opts[] = "F:f:v:W:caeCVDsS";+ #else+ char awk_opts[] = "F:f:v:W:caeCVsS";+ #endif+ extern int  debug;+ #endif    int  main(argc, argv)****************** 186,192 ****--- 195,211 ----  "warning: option -D will go away in the next release, use -W parsedebug\n");  			gawk_option("parsedebug");  			break;+ + #ifdef	SNMP+ 		case 's':+ 			debug = 1;+ 			break;+ + 		case 'S':+ 			debug = 2;+ 			break;  #endif+ #endif    		case 'c':  			fprintf(stderr,****************** 441,446 ****--- 460,473 ----  {&RLENGTH_node, "RLENGTH",	Node_var,		0,	0,  0 },  {&RSTART_node,	"RSTART",	Node_var,		0,	0,  0 },  {&SUBSEP_node,	"SUBSEP",	Node_var,		"\034",	0,  0 },+ #ifdef	SNMP+ {&AGENT_node,	"AGENT",	Node_var,		0,	0,  0 },+ {&COMMUNITY_node,"COMMUNITY",	Node_var,		"public",0, 0 },+ {&DIAGNOSTIC_node,"DIAGNOSTIC",	Node_var,		0,	0,  0 },+ {&ERROR_node,	"ERROR",	Node_var,		0,	3.0,0 },+ {&RETRIES_node,	"RETRIES",	Node_var,		0,	10.0,0 },+ {&TIMEOUT_node,	"TIMEOUT",	Node_var,		0,	0,  0 },+ #endif  {0,		0,		Node_illegal,		0,	0,  0 },  };  ****************** 449,454 ****--- 476,489 ----  {  	register struct varinit *vp;  + #ifdef	SNMP+ 	    for (vp = varinit; vp->name; vp++)+ 		if (strcmp ("AGENT", vp -> name) == 0) {+ 		     (void) snmp_init (&vp -> strval);+ 		    break;+ 		}+ #endif+   	for (vp = varinit; vp->name; vp++) {  		*(vp->spec) = install(vp->name,  		  node(vp->strval == 0 ? make_number(vp->numval)****************** 512,517 ****--- 547,556 ----  		lhs = get_lhs(var, &after_assign);  		unref(*lhs);  		*lhs = it;+ #ifdef	SNMP+ 		if (SET_node)+ 		    snmp_set ();+ #endif  		if (after_assign)  			(*after_assign)();  		*--cp = '=';	/* restore original text of ARGV */

⌨️ 快捷键说明

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