m62.c

来自「Version 6 Unix 核心源代码 Version 6 Unix 核心源」· C语言 代码 · 共 91 行

C
91
字号
##include "m6.h"control() {	while(1) {		get();		if(c==0 && lg>0)  {			popget(); 			trash(); 			rescan = 1; 		}		else {			if(!rescan) put();			else if(lq>0) {				if(c==lquote) {					lq++; 					put(); 				}				else if(c==rquote || c==0)  {					lq--;					if(lq>0 || l9>0) put (rquote); 				}				else put(); 			}			else if(l9>0) 				if(c==colon||c==0||c==semi) 					if(--l9<=0) endcall();					else put();				else {					if(c==sharp) l9++;					else if(c==lquote) lq++;					put(); 				}			else {				if(c==sharp) begincall();				else if(c==lquote) lq++;				else if(lp>0) {					if(c==colon||c==0||c==semi) endcall();					else if(c==comma) newarg();					else put(); 				}				else if(c==0) return;	/* lg=lp=lq=0 */				else put(); 			} 		} 	} }endcall() {	char *pt, *p;	rescan = c!=semi;	newarg();	pushget();	pt = &pf->pa0;	ge = move(pt,&gf->ga0,pe-pt);	if(ge>gmax) diag("Call stack overflow");	if(traceflag) dotrace();	p = finddef(0);	setscan(p);	popput();	lp--;	function(p->dswitch); }begincall() {	lp++;	pushput();	pe = pf+pend;	pf->pan = pf->pa0 = 0;}newarg() {	char *p;	if(++pf->pan>=9) if(c==comma) l9++;	*pe++ = 0;	pe = (pe+1)&0177776;	p = &pf->pa0;	while(p->word!=0) p =+ p->word;	p->word = pe - p;	*pe++ = *pe++ = 0; }setscan(p) char *p;{	gf->mchar = (gf->mframe = p)->dtext;	gf->marg = 0; }

⌨️ 快捷键说明

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