⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 runoff

📁 类unix x86平台的简单操作系统
💻
字号:
#!/bin/shecho This script takes a minute to run.  Be patient. 1>&2# pad stdin to multiple of 120 linespad(){	awk '{print} END{for(; NR%120!=0; NR++) print ""}'}# create formatted (numbered) filesmkdir -p fmtrm -f fmt/*cp README fmtfiles=`grep -v '^#' runoff.list | awk '{print $1}'`n=99for i in $filesdo	runoff1 -n $n $i >fmt/$i	nn=`tail -1 fmt/$i | sed 's/ .*//; s/^0*//'`	if [ "x$nn" != x ]; then		n=$nn	fidone# create table of contentscat toc.hdr >fmt/tocpr -e8 -t runoff.list | awk '/^[a-z0-9]/ {	s=$0	f="fmt/"$1	getline<f	close(f)	n=$1	printf("%02d %s\n", n/100, s);	next}{	print}' | pr -3 -t >>fmt/toccat toc.ftr >>fmt/toc# make definition listcd fmtperl -e '	while(<>) {		chomp;		s!//.*!!;		s!/\*([^*]|[*][^/])*\*/!!g;		s!\s! !g;		s! +$!!;		# look for declarations like char* x;		if (/^[0-9]+ typedef .* u(int|short|long|char);/) {			next;		}		if (/^[0-9]+ extern/) {			next;		}		if (/^[0-9]+ struct [a-zA-Z0-9_]+;/) {			next;		}		if (/\(/) {			next;		}		if (/^([0-9]+) (((static|struct|extern|union|enum) +)*([A-Za-z0-9_]+))( .*)? +([A-Za-z_][A-Za-z0-9_]*)[,;]/) {					print "$1 $7\n"		}				elsif (/^([0-9]+) #define +([A-za-z0-9_]+) +?\(.*/) {			print "$1 $2\n"		}				elsif (/^([0-9]+) #define +([A-Za-z0-9_]+) +([^ ]+)$/) {			print "$1 $2 $3\n";		}				elsif (/^([0-9]+) #define +([A-Za-z0-9_]+)/) {			print "$1 $2\n";		}				elsif(/^([0-9]+) (enum|struct|union) +([A-Za-z0-9_]+) +{/){ 			print "$1 $3\n";		}		# TODO: enum members	}' $files >defsperl -n -e 'print if s/^([0-9]+ [a-zA-Z0-9_]+)\(.*$/\1/;' $files |	egrep -v ' (usage|main|if|for)$' >>defs(>s.defs# make reference listfor i in `awk '{print $2}' defs | sort -fu`do	defs=`egrep '^[0-9]+ '$i'( |$)' defs | awk '{print $1}'`	echo $i $defs >>s.defs	uses=`egrep -h '([^a-zA-Z_0-9])'$i'($|[^a-zA-Z_0-9])' $files | awk '{print $1}'`	echo $i $defs	echo $uses |fmt -24 | sed 's/^/    /'done) >refs# build defs listawk '{	printf("%04d %s\n", $2, $1);	for(i=3; i<=NF; i++)		printf("%04d    \" \n", $i);}' s.defs > t.defs# format the whole thing(	../pr.pl README	../pr.pl -h "table of contents" toc	# pr -t -2 t.defs | ../pr.pl -h "definitions" | pad	pr -t -l50 -2 refs | ../pr.pl -h "cross-references" | pad	# pr.pl -h "definitions" -2 t.defs | pad	# pr.pl -h "cross-references" -2 refs | pad 	for i in $files	do		../pr.pl -h "xv6/$i" $i	done) | mpage -m50t50b -o -bLetter -T -t -2 -FCourier -L60 >all.psgrep Pages: all.ps# if we have the nice font, use itnicefont=~rsc/plan9/sys/lib/postscript/font/LucidaSans-Typewriter83if [ -f $nicefont ]then	(sed 1q all.ps; cat $nicefont; sed '1d; s/Courier/LucidaSans-Typewriter83/' all.ps) >allf.pselse	cp all.ps allf.psfips2pdf allf.ps ../xv6.pdf

⌨️ 快捷键说明

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