t10.c

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 141 行

C
141
字号
#include "a.h"/* * 10. Input and Output Conventions and Character Translation. *//* set escape character */voidr_ec(int argc, Rune **argv){	if(argc == 1)		backslash = '\\';	else		backslash = argv[1][0];}/* turn off escape character */voidr_eo(int argc, Rune **argv){	USED(argc);	USED(argv);	backslash = -2;}/* continuous underline (same as ul in troff) for the next N lines *//* set underline font */voidg_uf(int argc, Rune **argv){	USED(argc);	USED(argv);}/* set control character */voidr_cc(int argc, Rune **argv){	if(argc == 1)		dot = '.';	else		dot = argv[1][0];}/* set no-break control character */voidr_c2(int argc, Rune **argv){	if(argc == 1)		tick = '\'';	else		tick = argv[1][0];}/* output translation */inte_bang(void){	Rune *line;		line = readline(CopyMode);	out(line);	outrune('\n');	free(line);	return 0;}inte_X(void){	int c;		while((c = getrune()) >= 0 && c != '\'' && c != '\n')		outrune(c);	if(c == '\n'){		warn("newline in %CX'...'", backslash);		outrune(c);	}	if(c < 0)		warn("eof in %CX'...'", backslash);	return 0;}inte_quote(void){	int c;	if(inputmode&ArgMode){		/* Leave \" around for argument parsing */		ungetrune('"');		return '\\';	}	while((c = getrune()) >= 0 && c != '\n')		;	return '\n';}inte_newline(void){	return 0;}inte_e(void){	return backslash;}voidr_comment(Rune *name){	int c;		USED(name);	while((c = getrune()) >= 0 && c != '\n')		;}voidt10init(void){	addreq(L("ec"), r_ec, -1);	addreq(L("eo"), r_eo, 0);	addreq(L("lg"), r_nop, -1);	addreq(L("cc"), r_cc, -1);	addreq(L("c2"), r_c2, -1);	addreq(L("tr"), r_warn, -1);	addreq(L("ul"), r_nop, -1);	addraw(L("\\\""), r_comment);		addesc('!', e_bang, 0);	addesc('X', e_X, 0);	addesc('\"', e_quote, CopyMode|ArgMode);	addesc('\n', e_newline, CopyMode|ArgMode|HtmlMode);	addesc('e', e_e, 0);}

⌨️ 快捷键说明

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