# Transforms papersize input lines generated by ./genpapersize.bash into # a C++ code that initializes lookup table (papersizes) for use in src/libs/libgroff/paper.cpp BEGIN { print "\n\ #include \"lib.h\"\n\ #include \"paper.h\"\n\ int papersize_init::initialised = 0;\n\ papersize_init::papersize_init()\n\ {\n\ if (initialised)\n\ return;\n\ initialised = 1;\ " } /metric$/{ d = 25.4 } /imperial$/{ d = 1 } { idx = NR-1 print " papersizes[" idx "].name = \"" $1 "\";" print " papersizes[" idx "].width = " ($2 / d) ";" print " papersizes[" idx "].length = " ($3 / d ) ";" } END { print "}" print "unsigned short num_papersizes = " NR ";" print "paper papersizes[" NR "];" }