mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-18 11:30:04 +00:00
313 lines
6.8 KiB
Perl
Executable File
313 lines
6.8 KiB
Perl
Executable File
#!/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";
|
|
|