summaryrefslogtreecommitdiff
path: root/Master/bin/i386-freebsd/fixdlsrps
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-12-22 00:49:20 +0000
committerKarl Berry <karl@freefriends.org>2009-12-22 00:49:20 +0000
commitb6eb5e035e6185bd8535ca38509a92e9ef5cdf97 (patch)
tree5b02b93fe85458ab391572123a0dfb236f12f3ee /Master/bin/i386-freebsd/fixdlsrps
parentbb4f2125f9283ff7200d3c3f9bbc5ecd7a700a68 (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/i386-freebsd/fixdlsrps')
-rwxr-xr-xMaster/bin/i386-freebsd/fixdlsrps54
1 files changed, 54 insertions, 0 deletions
diff --git a/Master/bin/i386-freebsd/fixdlsrps b/Master/bin/i386-freebsd/fixdlsrps
new file mode 100755
index 00000000000..2a1d85a654c
--- /dev/null
+++ b/Master/bin/i386-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;
+