summaryrefslogtreecommitdiffstats
path: root/third_party/lcov/contrib/galaxy/posterize.pl
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/lcov/contrib/galaxy/posterize.pl')
-rwxr-xr-xthird_party/lcov/contrib/galaxy/posterize.pl312
1 files changed, 312 insertions, 0 deletions
diff --git a/third_party/lcov/contrib/galaxy/posterize.pl b/third_party/lcov/contrib/galaxy/posterize.pl
new file mode 100755
index 0000000..1b2895ed
--- /dev/null
+++ b/third_party/lcov/contrib/galaxy/posterize.pl
@@ -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";
+