diff options
author | Karl Berry <karl@freefriends.org> | 2009-12-22 00:49:20 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-12-22 00:49:20 +0000 |
commit | b6eb5e035e6185bd8535ca38509a92e9ef5cdf97 (patch) | |
tree | 5b02b93fe85458ab391572123a0dfb236f12f3ee /Master/bin/amd64-freebsd/fixdlsrps | |
parent | bb4f2125f9283ff7200d3c3f9bbc5ecd7a700a68 (diff) |
add i386-freebsd and amd64-freebsd, from http://anthesphoria.net/FreeBSD/TeXLive-2009, courtesy of Nikola Lecic
git-svn-id: svn://tug.org/texlive/trunk@16472 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/bin/amd64-freebsd/fixdlsrps')
-rwxr-xr-x | Master/bin/amd64-freebsd/fixdlsrps | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/Master/bin/amd64-freebsd/fixdlsrps b/Master/bin/amd64-freebsd/fixdlsrps new file mode 100755 index 00000000000..2a1d85a654c --- /dev/null +++ b/Master/bin/amd64-freebsd/fixdlsrps @@ -0,0 +1,54 @@ +#!/usr/bin/env perl +# fixdlsrps: fix DviLaser/PS document to work with PSUtils +# +# Copyright (C) Angus J. C. Duggan 1991-1995 +# See file LICENSE for details. + +$nesting = 0; +$page = 1; +$infont = 0; + +@fonts = (); +@body = (); +$header = 1; + +while (<>) { + if (/^XP/) { + $infont++; + push(@fonts, $_); + $infont-- if /PXL.*RP/ || /DN?F.*RP/; + } elsif ($infont) { + push(@fonts, $_); + $infont-- if /PXL.*RP/ || /DN?F.*RP/; + } elsif ((/^%%EndSetup/ || /^%%Page:/) && $header) { + print @body; + @body = ("%%EndSetup\n"); + $header = 0; + } elsif (/^%%EndProlog/ && !$nesting) { + push(@body, + "\$DviLaser begin/GlobalMode{}bdef/LocalMode{}bdef/XP{}def/RP{}def", + "/DoInitialScaling{72.0 Resolution div dup scale}bdef end\n", $_); + } elsif (/^%%BeginPageSetup/ && !$nesting) { + push(@body, "%%Page: $page $page\n", $_, + "Resolution 72 div dup scale Magnification 1000 div dup scale\n", + "/DocumentInitState where {\n", + "/DocumentInitState [ matrix currentmatrix currentlinewidth", + " currentlinecap currentlinejoin currentdash currentgray", + " currentmiterlimit] cvx put}if\n"); + $page++; + } elsif (/^%%BeginDocument:/ || /^%%BeginBinary:/ || /^%%BeginFile:/) { + push(@body, $_); + $nesting++; + } elsif (/^%%EndDocument/ || /^%%EndBinary/ || /^%%EndFile/) { + push(@body, $_); + $nesting--; + } elsif (!/^%%PageBoundingBox:/ && !/^%%Page:/) { + push(@body, $_); + } +} + +print @fonts; +print @body; + +exit 0; + |