提交 26dfb4c8 创建 作者: rsc's avatar rsc

runoff fixes

上级 2a55cc55
...@@ -42,44 +42,50 @@ pr -e8 -t runoff.list | awk ' ...@@ -42,44 +42,50 @@ pr -e8 -t runoff.list | awk '
# make definition list # make definition list
cd fmt cd fmt
awk ' perl -e '
/^[0-9]+ [A-Za-z0-9_]+ .*[A-Za-z0-9_].*;/ { while(<>) {
s=$0; chomp;
sub(/\[.*/, "", s);
sub(/\(.*/, "", s); s!//.*!!;
sub(/ *=.*/, "", s); s!/\*([^*]|[*][^/])*\*/!!g;
sub(/.* \**/, "", s); s!\s! !g;
sub(/;.*/, "", s); s! +$!!;
print $1, 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;
} }
$2=="#define" {
if($3 ~ /\(/){ if (/^([0-9]+) (((static|struct|extern|union|enum) +)*([A-Za-z0-9_]+))( .*)? +([A-Za-z_][A-Za-z0-9_]*)[,;]/) {
sub(/\(.*/, "", $3); print $1, $3
} else { print "$1 $7\n"
s = ""
for(i=4; i<=NF; i++){
s = s $i
} }
print $1, $3, s
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";
} }
$2=="enum" { inenum = 1; v=-1; }
$2 == "};" { inenum = 0; } elsif (/^([0-9]+) #define +([A-Za-z0-9_]+)/) {
inenum && $2 ~ /^[A-Z][a-zA-Z0-9_]+$/ { print "$1 $2\n";
if($3 == "="){
s = ""
for(i=4; i<=NF; i++){
s = s " " $i
} }
sub(/,$/, "", s);
sub(/^ /, "", s); elsif(/^([0-9]+) (enum|struct|union) +([A-Za-z0-9_]+) +{/){
v = s; print "$1 $3\n";
}else
v++;
print $1, $2, v;
} }
$2=="struct" && $3 ~ /^[A-Z][a-zA-Z0-9_]+$/ { # TODO: enum members
print $1, $3;
} }
' $files >defs ' $files >defs
...@@ -110,12 +116,15 @@ awk ' ...@@ -110,12 +116,15 @@ awk '
# format the whole thing # format the whole thing
( (
pr -l60 -e4 README pr -l60 -e8 README
pr -l60 -e4 toc pr -l60 -e8 -2 toc
pr -l60 -h "definitions" -2 t.defs | pad pr -l60 -h "definitions" -2 t.defs | pad
pr -l60 -h "cross-references" -2 refs | pad pr -l60 -h "cross-references" -2 refs | pad
pr -l60 -e4 $files for i in $files
) | mpage -m50t50b -o -bLetter -t -2 -FCourier -L60 >all.ps do
cat $i | pr -l60 -e8 -h "xv6/$i"
done
) | mpage -m50t50b -o -bLetter -T -t -2 -FCourier -L60 >all.ps
grep Pages: all.ps grep Pages: all.ps
# if we have the nice font, use it # if we have the nice font, use it
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论