亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? deroff.c

?? unix v7是最后一個廣泛發布的研究型UNIX版本
?? C
字號:
char *xxxvers = "\nDeroff Version 1.02    24 July 1978\n";#include <stdio.h>/* Deroff command -- strip troff, eqn, and Tbl sequences froma file.  Has one flag argument, -w, to cause output one word per linerather than in the original format.Deroff follows .so and .nx commands, removes contents of macrodefinitions, equations (both .EQ ... .EN and $...$),Tbl command sequences, and Troff backslash constructions.All input is through the C macro; the most recently read character is in c.*/#define C ( (c=getc(infile)) == EOF ? eof() : ((c==ldelim)&&(filesp==files) ? skeqn() : c) )#define C1 ( (c=getc(infile)) == EOF ? eof() :  c)#define SKIP while(C != '\n') #define YES 1#define NO 0#define NOCHAR -2#define SPECIAL 0#define APOS 1#define DIGIT 2#define LETTER 3int wordflag = NO;int inmacro = NO;int intable = NO;char chars[128];  /* SPECIAL, APOS, DIGIT, or LETTER */char line[512];char *lp;int c;int ldelim	= NOCHAR;int rdelim	= NOCHAR;int argc;char **argv;char fname[50];FILE *files[15];FILE **filesp;FILE *infile;char *calloc();main(ac, av)int ac;char **av;{register int i;register char *p;static char onechar[2] = "X";FILE *opn();argc = ac - 1;argv = av + 1;while(argc>0 && argv[0][0]=='-' && argv[0][1]!='\0') 	{	for(p=argv[0]+1; *p; ++p) switch(*p)		{		case 'w':			wordflag = YES;			break;		default:			onechar[0] = *p;			fatal("Invalid flag %s\n", onechar);		}	--argc;	++argv;	}if(argc == 0)	infile = stdin;else	{	infile = opn(argv[0]);	--argc;	++argv;	}files[0] = infile;filesp = &files[0];for(i='a'; i<='z' ; ++i)	chars[i] = LETTER;for(i='A'; i<='Z'; ++i)	chars[i] = LETTER;for(i='0'; i<='9'; ++i)	chars[i] = DIGIT;chars['\''] = APOS;chars['&'] = APOS;work();}skeqn(){while((c = getc(infile)) != rdelim)	if(c == EOF)		c = eof();	else if(c == '"')		while( (c = getc(infile)) != '"')			if(c == EOF)				c = eof();			else if(c == '\\')				if((c = getc(infile)) == EOF)					c = eof();return(c = ' ');}FILE *opn(p)register char *p;{FILE *fd;if(p[0]=='-' && p[1]=='\0')	fd = stdin;else if( (fd = fopen(p, "r")) == NULL)	fatal("Cannot open file %s\n", p);return(fd);}eof(){if(infile != stdin)	fclose(infile);if(filesp > files)	infile = *--filesp;else if(argc > 0)	{	infile = opn(argv[0]);	--argc;	++argv;	}else	exit(0);return(C);}getfname(){register char *p;struct chain { struct chain *nextp; char *datap; } *chainblock;register struct chain *q;static struct chain *namechain	= NULL;char *copys();while(C == ' ') ;for(p = fname ; (*p=c)!= '\n' && c!=' ' && c!='\t' && c!='\\' ; ++p)	C;*p = '\0';while(c != '\n')	C;/* see if this name has already been used */for(q = namechain ; q; q = q->nextp)	if( ! strcmp(fname, q->datap))		{		fname[0] = '\0';		return;		}q = (struct chain *) calloc(1, sizeof(*chainblock));q->nextp = namechain;q->datap = copys(fname);namechain = q;}fatal(s,p)char *s, *p;{fprintf(stderr, "Deroff: ");fprintf(stderr, s, p);exit(1);}work(){for( ;; )	{	if(C == '.'  ||  c == '\'')		comline();	else		regline(NO);	}}regline(macline)int macline;{line[0] = c;lp = line;for( ; ; )	{	if(c == '\\')		{		*lp = ' ';		backsl();		}	if(c == '\n') break;	if(intable && c=='T')		{		*++lp = C;		if(c=='{' || c=='}')			{			lp[-1] = ' ';			*lp = C;			}		}	else	*++lp = C;	}*lp = '\0';if(line[0] != '\0')	if(wordflag)		putwords(macline);	else if(macline)		putmac(line);	else		puts(line);}putmac(s)register char *s;{register char *t;while(*s)	{	while(*s==' ' || *s=='\t')		putchar(*s++);	for(t = s ; *t!=' ' && *t!='\t' && *t!='\0' ; ++t)		;	if(t>s+2 && chars[ s[0] ]==LETTER && chars[ s[1] ]==LETTER)		while(s < t)			putchar(*s++);	else		s = t;	}putchar('\n');}putwords(macline)	/* break into words for -w option */int macline;{register char *p, *p1;int i, nlet;for(p1 = line ; ;)	{	/* skip initial specials ampersands and apostrophes */	while( chars[*p1] < DIGIT)		if(*p1++ == '\0') return;	nlet = 0;	for(p = p1 ; (i=chars[*p]) != SPECIAL ; ++p)		if(i == LETTER) ++nlet;	if( (!macline && nlet>1)   /* MDM definition of word */	   || (macline && nlet>2 && chars[ p1[0] ]==LETTER && chars[ p1[1] ]==LETTER) )		{		/* delete trailing ampersands and apostrophes */		while(p[-1]=='\'' || p[-1]=='&')			 --p;		while(p1 < p) putchar(*p1++);		putchar('\n');		}	else		p1 = p;	}}comline(){register int c1, c2;while(C==' ' || c=='\t')	;if( (c1=c) == '\n')	return;c2 = C;if(c1=='.' && c2!='.')	inmacro = NO;if(c2 == '\n')	return;if(c1=='E' && c2=='Q' && filesp==files)	eqn();else if(c1=='T' && (c2=='S' || c2=='C' || c2=='&') && filesp==files)	tbl();else if(c1=='T' && c2=='E')	intable = NO;else if(!inmacro && c1=='d' && c2=='e')	macro();else if(!inmacro && c1=='i' && c2=='g')	macro();else if(!inmacro && c1=='a' && c2 == 'm')	macro();else if(c1=='s' && c2=='o')	{	getfname();	if( fname[0] )		infile = *++filesp = opn( fname );	}else if(c1=='n' && c2=='x')	{	getfname();	if(fname[0] == '\0') exit(0);	if(infile != stdin)		fclose(infile);	infile = *filesp = opn(fname);	}else if(c1=='h' && c2=='w')	{ SKIP; }else	{	if(c1=='.' && c2=='.')		while(C == '.')			;	++inmacro;	regline(YES);	--inmacro;	}}macro(){/*do { SKIP; }	while(C!='.' || C!='.' || C=='.');	/* look for  .. */SKIP;inmacro = YES;}tbl(){while(C != '.');SKIP;intable = YES;}eqn(){register int c1, c2;SKIP;for( ;;)	{	if(C == '.'  || c == '\'')		{		while(C==' ' || c=='\t')			;		if(c=='E' && C=='N')			{			SKIP;			return;			}		}	else if(c == 'd')	/* look for delim */		{		if(C=='e' && C=='l')		    if( C=='i' && C=='m')			{			while(C1 == ' ');			if((c1=c)=='\n' || (c2=C1)=='\n'			    || (c1=='o' && c2=='f' && C1=='f') )				{				ldelim = NOCHAR;				rdelim = NOCHAR;				}			else	{				ldelim = c1;				rdelim = c2;				}			}		}	if(c != '\n')  SKIP;	}}backsl()	/* skip over a complete backslash construction */{int bdelim;sw:  switch(C)	{	case '"':		SKIP;		return;	case 's':		if(C == '\\') backsl();		else	{			while(C>='0' && c<='9') ;			ungetc(c,infile);			c = '0';			}		--lp;		return;	case 'f':	case 'n':	case '*':		if(C != '(')			return;	case '(':		if(C != '\n') C;		return;	case '$':		C;	/* discard argument number */		return;	case 'b':	case 'x':	case 'v':	case 'h':	case 'w':	case 'o':	case 'l':	case 'L':		if( (bdelim=C) == '\n')			return;		while(C!='\n' && c!=bdelim)			if(c == '\\') backsl();		return;	case '\\':		if(inmacro)			goto sw;	default:		return;	}}char *copys(s)register char *s;{register char *t, *t0;if( (t0 = t = calloc( strlen(s)+1, sizeof(*t) ) ) == NULL)	fatal("Cannot allocate memory", (char *) NULL);while( *t++ = *s++ )	;return(t0);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲欧美一级| 成人a区在线观看| 91在线一区二区三区| 91麻豆精品国产91久久久资源速度 | 亚洲成精国产精品女| 国产不卡视频在线观看| 日韩女同互慰一区二区| 亚洲一区二区三区四区在线观看| 大尺度一区二区| 欧美在线影院一区二区| 国产精品丝袜在线| 激情欧美一区二区| 91精品国产丝袜白色高跟鞋| 亚洲一区二区在线播放相泽| 99国产精品久久久| 国产欧美一区二区三区沐欲| 日本sm残虐另类| 91免费观看视频| 首页亚洲欧美制服丝腿| 青青草精品视频| 在线精品国精品国产尤物884a| 久久一区二区视频| 日本不卡不码高清免费观看| 欧美日韩一区二区欧美激情| 亚洲色图视频网| 国产福利一区二区三区在线视频| 日韩精品一区二区三区三区免费| 五月婷婷激情综合| 欧美日韩视频在线第一区 | 精品国产一区久久| 日韩av一级电影| 欧美欧美欧美欧美| 日韩在线一区二区| 在线电影院国产精品| 五月天欧美精品| 91麻豆精品国产91久久久使用方法 | 日本免费在线视频不卡一不卡二| 日本久久电影网| 亚洲柠檬福利资源导航| 99re这里都是精品| 亚洲欧洲精品一区二区三区不卡| 岛国av在线一区| 中文字幕乱码亚洲精品一区| 国产99久久久精品| 中文字幕亚洲综合久久菠萝蜜| 粉嫩av一区二区三区| 国产精品全国免费观看高清 | 成人激情免费视频| 国产精品视频一二| 在线欧美日韩国产| 免费观看一级特黄欧美大片| 综合分类小说区另类春色亚洲小说欧美| 欧美日韩免费电影| 一本色道久久加勒比精品| 国产91丝袜在线观看| 九九精品一区二区| 日本视频在线一区| 91小视频在线| 不卡一区二区三区四区| 91精品国产麻豆国产自产在线| 国产精品水嫩水嫩| 91麻豆精品一区二区三区| 亚洲综合精品久久| 91精品国产欧美日韩| 国产在线精品免费av| 久久精品免费在线观看| 91在线观看下载| 亚洲国产日韩av| 日韩女优av电影| 国产91精品精华液一区二区三区| 国产精品欧美一级免费| 欧美综合一区二区三区| 亚洲成av人在线观看| 91在线播放网址| 日本一二三不卡| 国产一区二区三区黄视频| 国产精品福利在线播放| 欧美丝袜丝交足nylons| 免费xxxx性欧美18vr| 国产三级一区二区三区| 欧洲精品中文字幕| 久久99国产精品免费| 亚洲欧美综合另类在线卡通| 在线观看精品一区| 精东粉嫩av免费一区二区三区| 久久久精品免费网站| 色噜噜偷拍精品综合在线| 日韩av中文字幕一区二区 | 国产91在线看| 亚洲一区二区三区在线| 欧美精品一区二区三区高清aⅴ| 99视频超级精品| 日韩在线a电影| 日本一区二区三区电影| 欧美网站一区二区| 制服丝袜av成人在线看| 日韩一区欧美二区| 欧美国产日韩亚洲一区| 欧美三级日韩在线| 国产成人精品www牛牛影视| 一区二区三区美女| 久久久影视传媒| 欧美亚一区二区| 成人一级黄色片| 美女视频免费一区| 五月天婷婷综合| 中文字幕乱码久久午夜不卡 | 日韩**一区毛片| 亚洲色图色小说| 亚洲精品一区二区三区精华液 | 成人av网址在线| 日本欧美久久久久免费播放网| 国产精品久久一级| 精品久久久久久久久久久久久久久久久| 97精品国产露脸对白| 国模大尺度一区二区三区| 亚洲高清一区二区三区| 国产精品国产三级国产有无不卡 | 色播五月激情综合网| 国产精品夜夜嗨| 美女免费视频一区二区| 一区二区三区欧美日| 国产欧美久久久精品影院| 在线不卡欧美精品一区二区三区| 白白色 亚洲乱淫| 国产在线视频一区二区| 日本一道高清亚洲日美韩| 亚洲欧美欧美一区二区三区| 国产日韩欧美电影| 久久婷婷久久一区二区三区| 91精品国产综合久久国产大片| 欧美亚洲高清一区| 91性感美女视频| 成人sese在线| 国产成人啪午夜精品网站男同| 麻豆精品国产传媒mv男同| 午夜不卡av在线| 亚洲一级二级在线| 亚洲日本va在线观看| 国产精品素人视频| 中文字幕免费在线观看视频一区| 精品国产一区二区三区久久久蜜月| 欧美精品粉嫩高潮一区二区| 欧美视频第二页| 在线观看欧美黄色| 欧美中文字幕一区二区三区亚洲 | 国产制服丝袜一区| 裸体一区二区三区| 免费三级欧美电影| www国产成人| 首页国产欧美久久| 亚洲成人午夜影院| 亚洲高清免费在线| 亚洲地区一二三色| 亚洲电影一区二区| 亚洲国产日韩综合久久精品| 亚洲成人在线观看视频| 亚洲国产综合视频在线观看| 又紧又大又爽精品一区二区| 亚洲欧美日韩人成在线播放| 亚洲天堂精品在线观看| 日韩毛片精品高清免费| 亚洲精品欧美激情| 一区二区免费看| 亚洲一区二区三区不卡国产欧美| 亚洲综合精品自拍| 亚洲成精国产精品女| 亚洲3atv精品一区二区三区| 日韩av一级电影| 狠狠色丁香久久婷婷综合丁香| 国产一区二区三区四| 成人永久aaa| 色综合中文综合网| 欧美疯狂性受xxxxx喷水图片| 欧美精品免费视频| 日韩欧美美女一区二区三区| xf在线a精品一区二区视频网站| 国产喂奶挤奶一区二区三区| 国产精品人人做人人爽人人添| 亚洲色大成网站www久久九九| 亚洲综合另类小说| 日本麻豆一区二区三区视频| 国产一区亚洲一区| 99久久综合狠狠综合久久| 在线观看日韩电影| 日韩一区二区三区高清免费看看| 26uuu亚洲| 国产精品久99| 性久久久久久久| 国产一区二区三区黄视频| 99久久综合狠狠综合久久| 欧美区在线观看| 久久久国产综合精品女国产盗摄| 最新欧美精品一区二区三区| 亚洲国产wwwccc36天堂| 国产尤物一区二区在线| 色婷婷综合久久久久中文一区二区| 在线不卡免费av| 国产精品欧美一区二区三区| 婷婷国产在线综合|