cvt

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

TXT
46
字号
awk '/^{/ {	if (prev != "") {		# comments can be trouble (e.g. ffree())		if ( (c = match(prev, /\/\*.*\*\/$/)) != 0 ) {			comment = substr(prev, c)			sub(/\/\*.*\*\/$/, "", prev)		} else comment = ""		x = prev		# isolate argument list		sub(/^[^(]*\(/, "", x)		sub(/\)[^)]*$/, "", x)		# find the names in it		n = split(x, args)		arglist = ""		for (i = 2; i <= n; i += 2)			arglist = arglist args[i]		gsub(/\(\*f\)\(Tchar\)/, "f", arglist)	# special case for n4.c		gsub(/\[[0-9]+\]/, "", arglist)		#     for n8.c		gsub(/[*()\[\]]/, "", arglist)		# discard noise characters *()[]		gsub(/,/, ", ", arglist)		# space nicely		sub(/\(.*\)/, "(" arglist ")", prev)	# reconstruct		print prev comment		# argument declarations		gsub(/,/, ";", x)		gsub(/\(\*f\)\(Tchar\)/, "(*f)()", x)	# special case for n4.c		if (x != "")			print "\t" x ";"	}	prev = $0	next}{	print prev	prev = $0}END { print prev }' $*

⌨️ 快捷键说明

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