Index: third_party/lcov/contrib/galaxy/posterize.pl |
=================================================================== |
--- third_party/lcov/contrib/galaxy/posterize.pl (revision 0) |
+++ third_party/lcov/contrib/galaxy/posterize.pl (revision 0) |
@@ -0,0 +1,312 @@ |
+#!/usr/bin/perl |
+# |
+# Copyright (c) International Business Machines Corp., 2002 |
+# |
+# This program is free software; you can redistribute it and/or modify |
+# it under the terms of the GNU General Public License as published by |
+# the Free Software Foundation; either version 2 of the License, or (at |
+# your option) any later version. |
+# |
+# This program is distributed in the hope that it will be useful, but |
+# WITHOUT ANY WARRANTY; without even the implied warranty of |
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
+# General Public License for more details. |
+# |
+# You should have received a copy of the GNU General Public License |
+# along with this program; if not, write to the Free Software |
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
+# |
+# |
+# posterize.pl |
+# |
+# This script generates a postscript file from output generated from the |
+# fcgp http://sourceforge.net/projects/fcgp/ for plotting |
+# |
+# |
+# History: |
+# 2003-09-04 wrote - James M Kenefick Jr. <jkenefic@us.ibm.com> |
+# |
+ |
+ |
+ |
+# a good deal of this could be turned in to cli |
+# arguments. |
+ |
+# Constants |
+my $Title = "Linux Kernel Coverage"; |
+my $KernelVersion = "2.5.73"; |
+my $TestDescription = "A Sample Print"; |
+my $Image = "../lgp/image.ps"; |
+ |
+# Variables |
+my $Bounds = ""; |
+# Paper sizes in inches |
+my $PAPER_WIDTH = 34; |
+my $PAPER_HEIGHT = 42; |
+ |
+# points per inch |
+my $ppi = 72; |
+ |
+# Margins |
+my $TopMargin = 1; |
+my $BottomMargin = 1.5; |
+my $LeftMargin = 1; |
+my $RightMargin = 1; |
+ |
+ |
+$RightMargin = $PAPER_WIDTH - $RightMargin; |
+$TopMargin = $PAPER_HEIGHT - $TopMargin; |
+ |
+my $filename = "poster.ps"; |
+ |
+# Sizes in ppi |
+my $PPI_WIDTH = ($PAPER_WIDTH * $ppi); |
+my $PPI_HEIGHT = ($PAPER_HEIGHT * $ppi); |
+ |
+# Date we create poster |
+my $date = `date`; |
+ |
+print STDERR "Creating Poster\n"; |
+ |
+open POSTER, ">$filename"; |
+ |
+ |
+ |
+print(POSTER <<END_OF_USAGE); |
+%!PS-Adobe-1.0 |
+%%DocumentFonts: Helvetica Helvetica-Bold |
+%%Title: Linux 2.4.0 Kernel Poster |
+%%Creator: Rusty's scripts and postersize (GPL) |
+%%CreationDate: $date |
+%%Pages: 1 |
+%%BoundingBox: 0 0 $PPI_WIDTH $PPI_HEIGHT |
+%%EndComments |
+%! |
+/PRorig_showpage_x178313 /showpage load def /showpage{ |
+ errordict /handleerror {} put |
+ }def |
+/initgraphics{}def/setpagedevice{pop}def |
+statusdict begin /a4tray{}def /lettertray{}def end |
+/a4{}def/a3{}def/a0{}def/letter{}def/legal{}def |
+/a4small{}def /lettersmall{}def /a4tray{}def /lettertray{}def |
+/setscreen{pop pop pop}def |
+/ColorManagement {pop} def |
+ |
+ |
+/A {gsave newpath 0 360 arc stroke grestore} bind def |
+/M {moveto} bind def |
+/L {lineto} bind def |
+/D {[] 0 setdash} bind def |
+/D5 {[5] 0 setdash} bind def |
+/C0 {0 0 0 setrgbcolor} bind def |
+/C1 {.8 .4 .4 setrgbcolor} bind def |
+/C2 {.5 1 .5 setrgbcolor} bind def |
+/C3 {0 .7 0 setrgbcolor} bind def |
+/C4 {1 0 0 setrgbcolor} bind def |
+/C5 {0 0 1 setrgbcolor} bind def |
+/R {grestore} bind def |
+/S {0 0 M stroke} bind def |
+/T {gsave translate} bind def |
+/U {C0 newpath 4 copy 4 2 roll 8 7 roll M L L L closepath stroke |
+C1 findfont exch scalefont setfont M show} bind def |
+ |
+% Added James M Kenefick Jr. |
+/Hi_Color {0 0 1} def |
+/Med_Color {0 .60 1} def |
+/Lo_Color {0 1 1} def |
+/None_Color {.75 .75 .75} def |
+/Hi {newpath 4 copy 4 2 roll 8 7 roll M L L L Hi_Color setrgbcolor fill closepath} bind def |
+/Med {newpath 4 copy 4 2 roll 8 7 roll M L L L Med_Color setrgbcolor fill closepath} bind def |
+/Lo {newpath 4 copy 4 2 roll 8 7 roll M L L L Lo_Color setrgbcolor fill closepath} bind def |
+/None {newpath 4 copy 4 2 roll 8 7 roll M L L L None_Color setrgbcolor fill closepath} bind def |
+ |
+/inch |
+{ |
+ 72 mul |
+} |
+def |
+ |
+/LeftMargin $LeftMargin inch def |
+/RightMargin $RightMargin inch def |
+/TopMargin $TopMargin inch def |
+/BottomMargin $BottomMargin inch def |
+/FontScale 25 def |
+/AuthorFontScale 70 def |
+ |
+/centerText |
+{ |
+ dup |
+ stringwidth pop |
+ 2 div |
+ RightMargin LeftMargin sub 2 div |
+ exch sub |
+ LeftMargin add |
+ NextLine moveto |
+ show |
+} |
+def |
+ |
+/upLine |
+{ |
+ /NextLine |
+ NextLine LineSpace2 add |
+ def |
+} |
+def |
+ |
+/advanceLine |
+{ |
+ /NextLine |
+ NextLine LineSpace sub |
+ def |
+} |
+def |
+ |
+/fontScale |
+{ |
+ TopMargin BottomMargin sub FontScale div |
+} |
+def |
+ |
+/authorfontScale |
+{ |
+ TopMargin BottomMargin sub AuthorFontScale div |
+} |
+def |
+ |
+/rightJustify |
+{ |
+ dup |
+ stringwidth pop |
+ RightMargin 1 inch sub |
+ exch sub |
+ NextLine moveto |
+ show |
+} |
+def |
+ |
+/usableY |
+{ |
+ TopMargin LineSpace 3 mul sub BottomMargin sub |
+} |
+def |
+ |
+/usableX |
+{ |
+ RightMargin LeftMargin sub |
+} |
+def |
+gsave |
+/Times-Roman findfont fontScale scalefont setfont |
+/LineSpace fontScale def |
+/NextLine (B) stringwidth pop TopMargin exch sub def |
+ |
+%%EndProlog |
+%%Page 1 |
+% title |
+ |
+($Title) centerText advanceLine |
+(Kernel: $KernelVersion) centerText advanceLine |
+($TestDescription) centerText |
+ |
+% Author Block |
+LeftMargin BottomMargin translate |
+/Times-Roman findfont authorfontScale scalefont setfont |
+/LineSpace2 authorfontScale def |
+/NextLine 0 def |
+(Based on work by Rusty Russell, Christian Reiniger) rightJustify |
+upLine |
+(By James M. Kenefick Jr.) rightJustify |
+ |
+grestore |
+LeftMargin BottomMargin translate |
+ |
+% Key Block |
+15 15 scale |
+% This is the key for the graph. |
+ |
+/box { newpath moveto 0 1 rlineto 2 0 rlineto 0 -1 rlineto closepath } def |
+/key { setrgbcolor 2 copy box gsave fill grestore 0 0 0 setrgbcolor strokepath fill moveto 2.4 0.25 rmoveto show } def |
+ |
+/Helvetica-Oblique findfont |
+1 scalefont setfont |
+0.1 setlinewidth |
+ |
+(static functions) 1 5 0.5 1 0.5 key % Light green. |
+(indirectly called functions) 1 7 0 0.7 0 key % green |
+(exported functions) 1 9 1 0 0 key % red |
+(other functions) 1 11 0 0 1 key % blue |
+ |
+(Low Coverage) 1 15 Lo_Color key % blue |
+(Medium Coverage) 1 17 Med_Color key % blue |
+(Hi Coverage) 1 19 Hi_Color key % blue |
+(No Coverage) 1 21 None_Color key % blue |
+1 3.25 moveto |
+0.8 0.4 0.4 setrgbcolor |
+/Helvetica findfont |
+1 scalefont setfont |
+(xxx) show |
+1 3 moveto |
+2.4 0.25 rmoveto |
+0 0 0 setrgbcolor |
+/Helvetica-Oblique findfont |
+1 scalefont setfont |
+(function name) show |
+ |
+1 1.25 moveto |
+0.8 0.4 0.4 setrgbcolor |
+/Helvetica-Bold findfont |
+1 scalefont setfont |
+(xxx) show |
+1 1 moveto |
+2.4 0.25 rmoveto |
+0 0 0 setrgbcolor |
+/Helvetica-Oblique findfont |
+1 scalefont setfont |
+(source filename) show |
+ |
+6 24 moveto |
+/Helvetica-Bold findfont |
+2 scalefont setfont |
+(Key) show |
+ |
+% Box around it |
+newpath |
+0.2 0.2 moveto |
+0.2 27 lineto |
+17 27 lineto |
+17 0.2 lineto |
+closepath |
+strokepath fill |
+ |
+ |
+1 15 div 1 15 div scale |
+ |
+% find and move to center |
+END_OF_USAGE |
+ |
+# Find the bounds for the image |
+ |
+$Bounds = `tail -1 $Image`; |
+($Junk, $Junk, $minX, $minY, $maxX, $maxY) = split / /, $Bounds; |
+ |
+my $xRange = $maxX - $minX; |
+my $yRange = $maxY - $minY; |
+ |
+if ($xRange < $yRange){ |
+ $Range = $xRange; |
+} else { |
+ $Range = $yRange; |
+} |
+print POSTER " 0 usableY usableX sub 2 div translate\n"; |
+print POSTER "usableX $Range div usableX $Range div scale\n"; |
+print POSTER "$Range 2 div $Range 2 div translate\n"; |
+print POSTER "gsave\n"; |
+# Paste in actual image. |
+print POSTER `cat /home/lgp/image.ps`; |
+print POSTER "%%Trailer\n"; |
+print POSTER "grestore\n"; |
+print POSTER "showpage\n"; |
+print POSTER "PRorig_showpage_x178313\n"; |
+print POSTER "/showpage /PRorig_showpage_x178313 load def\n"; |
+ |
Property changes on: third_party/lcov/contrib/galaxy/posterize.pl |
___________________________________________________________________ |
Name: svn:executable |
+ * |