BEGIN { factor = FACTOR; printf("## shrink multiplier is %f\n",factor); } /#/ { print; next; } /screenset/ { in_screen = 1 } /map/ { in_map = 1 } $1 != "function" && $1 ~ /\(/ { geom = 1 } /{/,/}/ { if(in_screen == 1 && geom == 1) { if(NF == 12) { name = $2; type = $3; parent = $4; x = $5; y = $6; w = $7; h = $8; bw = $9; bc = $10; bg = $11; x *= factor; y *= factor; w *= factor; h *= factor; has_border = 0; if(bw > 0) { has_border = 1; } bw *= factor; if(int(bw) == 0 && has_border == 1) { bw = 1; } printf "## old screen spec: %s\n",$0; printf " ( %s %s %s %d %d %d %d %d %d %d )\n",name,type,parent,x,y,w,h,bw,bc,bg; geom = 0; next; } else if(NF == 14) { geom = 0; next; } } else if(in_map == 1 && geom == 1) { if(NF != 8) { printf("### >>> bad map geom syntax\n"); } else { x = substr($1,2,length($1)); y = $2; w = $3; h = $4; fg =$5; bg =$6; bc =$7; bw = substr($8,1,length($8)-1); x *= factor; y *= factor; w *= factor; h *= factor; has_border = 0; if(bw > 0) { has_border = 1; } bw *= factor; if(int(bw) == 0 && has_border == 1) { bw = 1; } old = $0; while(substr(old,1,1)=="\t") { old = substr(old,2,length(old)-1); } printf "\t\t\t## old map geom: %s\n",old; printf "\t\t\t(%d %d %d %d %d %d %d %d)\n",x,y,w,h,fg,bg,bc,bw; geom = 0; next; } } else if(in_map == 1 && geom == 0) { if(NF == 2) { if($1 == "x") { x = $2; x *= factor; printf "\t\t\t## old x: %d\n",$2; printf "\t\t\tx %d\n",x; next; } if($1 == "y") { y = $2; y *= factor; printf "\t\t\t## old y: %d\n",$2; printf "\t\t\ty %d\n",y; next; } if($1 == "width") { w = $2; w *= factor; printf "\t\t\t## old width: %d\n",$2; printf "\t\t\twidth %d\n",w; next; } if($1 == "height") { h = $2; h *= factor; printf "\t\t\t## old height: %d\n",$2; printf "\t\t\theight %d\n",h; next; } if($1 == "borderwidth") { bw = $2; bw *= factor; if(int($2) > 0 && int(bw) == 0) { bw = 1; } printf "\t\t\t## old borderwidth: %d\n",$2; printf "\t\t\tborderwidth %d\n",bw; next; } if($1 == "x1") { x1 = $2; x1 *= factor; printf "\t\t\t## old x1: %d\n",$2; printf "\t\t\tx1 %d\n",x1; next; } if($1 == "y1") { y1 = $2; y1 *= factor; printf "\t\t\t## old y1: %d\n",$2; printf "\t\t\ty1 %d\n",y1; next; } } } } /}/ { in_map = in_screen = 0; } /\)/ { geom = 0; } # $1 == "font" && $2 ~ /--/ { # Modification by VJH to shrink multiword fonts $1 == "font" && $0 ~ /--/ { # End Mod if(in_map == 1) { # Modification by VJH to shrink multiword fonts # if(NF == 2) # { fn = $2 for (i=3;i<=NF;i++) { fn = fn " " $i; } # End Mod fn = substr(fn,2,length(fn)-2); for(i=1;i<=length(fn);i++) { if(substr(fn,i,1) == "-" && substr(fn,i+1,1) == "-") { i++; break; } } base = substr(fn,1,i); rest = substr(fn,i+1,length(fn)-i); for(i=1;i<=length(rest);i++) { char = substr(rest,i,1); if( char == "-" || char == "*" ) break; } --i; size = substr(rest,1,i); size *= factor; if(size <= 8) size = 8; else if(size <= 10) size = 10; else if(size <= 11) size = 11; else if(size <= 12) size = 12; else if(size <= 15) size = 14; else if(size <= 17) size = 17; else if(size <= 19) size = 18; else if(size <= 22) size = 20; else if(size <= 24) size = 24; else if(size <= 28) size = 25; else size = 34; old = $0; while(substr(old,1,1)=="\t") { old = substr(old,2,length(old)-1); } printf "\t\t\t## old font spec: %s\n",old; printf "\t\t\tfont \"%s%s-*\"\n",base,size; next; # } VJH Mod for multiword fonts } } { print }