update tutorial to new language.
add a section on printing
add a section on allocation
R=rsc
DELTA=500 (278 added, 15 deleted, 207 changed)
OCL=22381
CL=22456
diff --git a/doc/prog.sh b/doc/prog.sh
index 8f376b6..26a5908 100755
--- a/doc/prog.sh
+++ b/doc/prog.sh
@@ -20,6 +20,11 @@
#
# non-blank lines are annotated with line number in file
+# line numbers are printed %.2d to make them equal-width for nice formatting.
+# the format gives a leading 0. the format %2d gives a leading space but
+# that appears to confuse sanjay's makehtml formatter into bungling quotes
+# because it makes some lines look indented.
+
echo "<pre> <!-- $* -->"
case $# in
@@ -27,27 +32,31 @@
if test "$3" = "END" # $2 to end of file
then
awk '
+ function LINE() { printf("%.2d\t%s\n", NR, $0) }
BEGIN { printing = 0 }
- '$2' { printing = 1; print NR "\t" $0; getline }
- printing { if($0 ~ /./) { print NR "\t" $0 } else { print "" } }
+ '$2' { printing = 1; LINE(); getline }
+ printing { if($0 ~ /./) { LINE() } else { print "" } }
'
else # $2 through $3
awk '
+ function LINE() { printf("%.2d\t%s\n", NR, $0) }
BEGIN { printing = 0 }
- '$2' { printing = 1; print NR "\t" $0; getline }
- '$3' && printing { if(printing) {printing = 0; print NR "\t" $0; exit} }
- printing { if($0 ~ /./) { print NR "\t" $0 } else { print "" } }
+ '$2' { printing = 1; LINE(); getline }
+ '$3' && printing { if(printing) {printing = 0; LINE(); exit} }
+ printing { if($0 ~ /./) { LINE() } else { print "" } }
'
fi
;;
2) # one line
awk '
- '$2' { print NR "\t" $0; getline; exit }
+ function LINE() { printf("%.2d\t%s\n", NR, $0) }
+ '$2' { LINE(); getline; exit }
'
;;
1) # whole file
awk '
- { if($0 ~ /./) { print NR "\t" $0 } else { print "" } }
+ function LINE() { printf("%.2d\t%s\n", NR, $0) }
+ { if($0 ~ /./) { LINE() } else { print "" } }
'
;;
*)