summaryrefslogtreecommitdiff
path: root/Master/texmf/scripts/tlgs
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2009-05-16 20:43:48 +0000
committerNorbert Preining <preining@logic.at>2009-05-16 20:43:48 +0000
commit902f732cf9904e3ff7cbdccd3d826708fd16b1e9 (patch)
treea9b97e4b9e75ea7957c92da07593d6c6906d8df6 /Master/texmf/scripts/tlgs
parente0ec2404b7821e5a78531afe84a5bc28395590ca (diff)
move tlgs/gswin32 scripts from scripts/texlive to scrips/tlgs
git-svn-id: svn://tug.org/texlive/trunk@13134 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf/scripts/tlgs')
-rwxr-xr-xMaster/texmf/scripts/tlgs/gswin32/eps2eps.tlu64
-rwxr-xr-xMaster/texmf/scripts/tlgs/gswin32/pdf2dsc.tlu62
-rwxr-xr-xMaster/texmf/scripts/tlgs/gswin32/pdfopt.tlu70
-rwxr-xr-xMaster/texmf/scripts/tlgs/gswin32/ps2ascii.tlu80
-rwxr-xr-xMaster/texmf/scripts/tlgs/gswin32/ps2pdf.tlu132
-rwxr-xr-xMaster/texmf/scripts/tlgs/gswin32/ps2pdf12.tlu132
-rwxr-xr-xMaster/texmf/scripts/tlgs/gswin32/ps2pdf13.tlu132
-rwxr-xr-xMaster/texmf/scripts/tlgs/gswin32/ps2pdf14.tlu132
8 files changed, 804 insertions, 0 deletions
diff --git a/Master/texmf/scripts/tlgs/gswin32/eps2eps.tlu b/Master/texmf/scripts/tlgs/gswin32/eps2eps.tlu
new file mode 100755
index 00000000000..9d5ffd7b30b
--- /dev/null
+++ b/Master/texmf/scripts/tlgs/gswin32/eps2eps.tlu
@@ -0,0 +1,64 @@
+#!/usr/bin/env texlua
+--*-Lua-*-
+-- $Id$
+
+-- Copyright (C) 2008 Reinhard Kotucha.
+-- You may freely use, modify and/or distribute this file.
+
+-- Replacement for eps2eps.bat.
+-- 'Distill' Encapsulated PostScript.
+
+function fixwin(args_unix)
+ if os.type == 'windows' then
+ local args_win={} -- new table
+ args_win[0]=args_unix[1]
+ for i=1, #args_unix do
+ args_win[i]='"'..args_unix[i]..'"'
+ end
+ return args_win
+ else
+ return args_unix
+ end
+end
+
+kpse.set_program_name('eps2eps.bat', 'eps2eps')
+
+TEXDIR=kpse.var_value('SELFAUTOPARENT')
+
+if os.type == 'windows' then
+ os.setenv('GS_LIB', TEXDIR..'/tlpkg/tlgs/lib;'..TEXDIR..'/tlpkg/tlgs/fonts')
+ os.setenv('PATH', TEXDIR..'/tlpkg/tlgs/bin;'..os.getenv('PATH'))
+ gs='gswin32c'
+else
+ gs='gs'
+end
+
+command={gs, '-q', '-sDEVICE=epswrite', '-dNOPAUSE',
+ '-sOutputFile='..arg[#arg], '-dBATCH', '-dSAFER',
+ '-dDEVICEWIDTH=250000', '-dDEVICEHEIGHT=250000'}
+
+files=0
+
+for i=1, #arg do
+ if not string.find(arg[i], '^-') then
+ files=files+1
+ end
+ command[#command+1]=arg[i]
+end
+
+if files < 2 then
+ io.stderr:write('Usage: eps2eps [options] input.eps output.eps')
+ os.exit(0)
+end
+
+command=fixwin(command)
+
+--[[ prepend an additional hyphen to activate this code
+for i=0, #command do
+ print (command[i])
+end
+os.exit(ret)
+--]]
+
+ret=os.spawn(command)
+os.exit(ret)
diff --git a/Master/texmf/scripts/tlgs/gswin32/pdf2dsc.tlu b/Master/texmf/scripts/tlgs/gswin32/pdf2dsc.tlu
new file mode 100755
index 00000000000..b3394df8504
--- /dev/null
+++ b/Master/texmf/scripts/tlgs/gswin32/pdf2dsc.tlu
@@ -0,0 +1,62 @@
+#!/usr/bin/env texlua
+--*-Lua-*-
+-- $Id$
+
+-- Copyright (C) 2007 Reinhard Kotucha.
+-- You may freely use, modify and/or distribute this file.
+
+-- Replacement for pdf2dsc.bat.
+-- Convert PDF to DSC
+
+function fixwin (args_unix)
+ if os.type == 'windows' then
+ local args_win={} -- new table
+ args_win[0]=args_unix[1]
+ for i=1, #args_unix do
+ args_win[i]='"'..args_unix[i]..'"'
+ end
+ return args_win
+ else
+ return args_unix
+ end
+end
+
+kpse.set_program_name('pdf2dsc.bat', 'pdf2dsc')
+
+TEXDIR=kpse.var_value('SELFAUTOPARENT')
+
+if os.type == 'windows' then
+ os.setenv('GS_LIB', TEXDIR..'/tlpkg/tlgs/lib;'..TEXDIR..'/tlpkg/tlgs/fonts')
+ os.setenv('PATH', TEXDIR..'/tlpkg/tlgs/bin;'..os.getenv('PATH'))
+ gs='gswin32c'
+else
+ gs='gs'
+end
+
+if #arg == 0 or #arg > 2 then
+ io.stderr:write('Usage: pdf2dsc input.pdf [output.dsc]\n')
+ os.exit(0)
+end
+
+pdffile=arg[1]
+if #arg==2 then
+ dscfile=arg[2]
+else
+ dscfile=select(1, string.gsub(pdffile, '\.%a+$', '.dsc'))
+end
+
+command={gs, '-q', '-dNODISPLAY', '-dSAFER', '-dDELAYSAFER',
+ '-sPDFname='..pdffile, '-sDSCname='..dscfile, 'pdf2dsc.ps',
+ '-c', 'quit'}
+
+command=fixwin(command)
+
+--[[ prepend an additional hyphen to activate this code
+for i=0, #command do
+ print (command[i])
+end
+os.exit(ret)
+--]]
+
+ret=os.spawn(command)
+os.exit(ret)
diff --git a/Master/texmf/scripts/tlgs/gswin32/pdfopt.tlu b/Master/texmf/scripts/tlgs/gswin32/pdfopt.tlu
new file mode 100755
index 00000000000..30f89492dc5
--- /dev/null
+++ b/Master/texmf/scripts/tlgs/gswin32/pdfopt.tlu
@@ -0,0 +1,70 @@
+#!/usr/bin/env texlua
+--*-Lua-*-
+-- $Id$
+
+-- Copyright (C) 2008 Reinhard Kotucha.
+-- You may freely use, modify and/or distribute this file.
+
+-- Replacement for pdfopt.bat.
+-- Linearize PDF
+
+function fixwin (args_unix)
+ if os.type == 'windows' then
+ local args_win={} -- new table
+ args_win[0]=args_unix[1]
+ for i=1, #args_unix do
+ args_win[i]='"'..args_unix[i]..'"'
+ end
+ return args_win
+ else
+ return args_unix
+ end
+end
+
+kpse.set_program_name('pdfopt.bat', 'pdfopt')
+
+TEXDIR=kpse.var_value('SELFAUTOPARENT')
+
+if os.type == 'windows' then
+ os.setenv('GS_LIB', TEXDIR..'/tlpkg/tlgs/lib;'..TEXDIR..'/tlpkg/tlgs/fonts')
+ os.setenv('PATH', TEXDIR..'/tlpkg/tlgs/bin;'..os.getenv('PATH'))
+ gs='gswin32c'
+else
+ gs='gs'
+end
+
+command={gs, '-q', '-dNODISPLAY', '-dSAFER', '-dDELAYSAFER'}
+
+files={}
+
+for i=1, #arg do
+ if string.find(arg[i], '^-') then
+ command[#command+1]=arg[i]
+ else
+ files[#files+1]=arg[i]
+ end
+end
+
+command[#command+1]='--'
+command[#command+1]='pdfopt.ps'
+
+if #files ~= 2 then
+ io.stderr:write('Usage: pdfopt [options] input.pdf output.pdf')
+ os.exit(0)
+else
+ for i=1, #files do
+ command[#command+1]=files[i]
+ end
+end
+
+command=fixwin(command)
+
+--[[ prepend an additional hyphen to activate this code
+for i=0, #command do
+ print (command[i])
+end
+os.exit(ret)
+--]]
+
+ret=os.spawn(command)
+os.exit(ret)
diff --git a/Master/texmf/scripts/tlgs/gswin32/ps2ascii.tlu b/Master/texmf/scripts/tlgs/gswin32/ps2ascii.tlu
new file mode 100755
index 00000000000..6e587ea21b4
--- /dev/null
+++ b/Master/texmf/scripts/tlgs/gswin32/ps2ascii.tlu
@@ -0,0 +1,80 @@
+#!/usr/bin/env texlua
+--*-Lua-*-
+-- $Id$
+
+-- Copyright (C) 2008 Reinhard Kotucha.
+-- You may freely use, modify and/or distribute this file.
+
+-- Replacement for ps2ascii.bat.
+-- Convert PostScript to ASCII
+
+function fixwin (args_unix)
+ if os.type == 'windows' then
+ local args_win={} -- new table
+ args_win[0]=args_unix[1]
+ for i=1, #args_unix do
+ args_win[i]='"'..args_unix[i]..'"'
+ end
+ return args_win
+ else
+ return args_unix
+ end
+end
+
+function remove_tmpfiles (tmpfiles)
+ for i=1, #tmpfiles do
+ if lfs.isfile(tmpfiles[i]) then
+ os.remove(tmpfiles[i])
+ end
+ end
+end
+
+kpse.set_program_name('ps2ascii.bat', 'ps2ascii')
+
+TEXDIR=kpse.var_value('SELFAUTOPARENT')
+
+if os.type == 'windows' then
+ os.setenv('GS_LIB', TEXDIR..'/tlpkg/tlgs/lib;'..TEXDIR..'/tlpkg/tlgs/fonts')
+ os.setenv('PATH', TEXDIR..'/tlpkg/tlgs/bin;'..os.getenv('PATH'))
+ gs='gswin32c'
+else
+ gs='gs'
+end
+
+command={gs, '-q', '-dNODISPLAY', '-dBATCH', '-dSAFER', '-dDELAYBIND',
+ '-dWRITESYSTEMDICT', '-dSIMPLE', 'ps2ascii.ps', '-c', 'save',
+ '-f', 'ps2ascii.ps'}
+
+if #arg < 2 then
+ if #arg == 0 then
+ command[#command+1]='-'
+ elseif #arg == 1 then
+ command[#command+1]=arg[1]
+ end
+ command=fixwin(command)
+elseif #arg == 2 then
+ -- We need a shell for I/O redirection.
+ command=gs..' -q -dNODISPLAY -dBATCH -dSAFER -dDELAYBIND'..
+ '-dWRITESYSTEMDICT -dSIMPLE ps2ascii.ps -c save'..
+ '-f ps2ascii.ps > "'..arg[2]..'"'
+end
+
+--[[ prepend an additional hyphen to activate this code
+if type(command) == 'string' then
+ print(command)
+else
+ for i=0, #command do
+ print (command[i])
+ end
+end
+os.exit(ret)
+--]]
+
+if type(command) == 'string' then
+ ret=os.execute(command)
+else
+ ret=os.spawn(command)
+end
+
+remove_tmpfiles{'_temp_.err', '_temp_.out'}
+os.exit(ret)
diff --git a/Master/texmf/scripts/tlgs/gswin32/ps2pdf.tlu b/Master/texmf/scripts/tlgs/gswin32/ps2pdf.tlu
new file mode 100755
index 00000000000..abe01c0a90b
--- /dev/null
+++ b/Master/texmf/scripts/tlgs/gswin32/ps2pdf.tlu
@@ -0,0 +1,132 @@
+#!/usr/bin/env texlua
+--*-Lua-*-
+-- $Id$
+
+-- Copyright (C) 2008 Reinhard Kotucha.
+-- You may freely use, modify and/or distribute this file.
+
+-- Replacement for ps2pdf*.bat.
+-- Convert PS to PDF
+
+function fixwin (args_unix)
+ if os.type == 'windows' then
+ local args_win={} -- new table
+ args_win[0]=args_unix[1]
+ for i=1, #args_unix do
+ args_win[i]='"'..args_unix[i]..'"'
+ end
+ return args_win
+ else
+ return args_unix
+ end
+end
+
+function filename (file)
+ local filename
+ if string.find(file, '/') then -- UNIX path
+ filename=select(1, string.gsub(file, '.*/', ''))
+ elseif string.find(file, '\\') then -- Windows path
+ filename=select(1, string.gsub(file, '.*\\', ''))
+ else -- no path
+ filename=file
+ end
+ return(filename)
+end
+
+function basename (file)
+ local basename
+ local fname
+ fname=filename (file)
+ basename=select(1, string.gsub(fname, '\.%a+$', ''))
+ return(basename)
+end
+
+kpse.set_program_name('ps2pdf.bat', 'ps2pdf')
+
+TEXDIR=kpse.var_value('SELFAUTOPARENT')
+
+if os.type == 'windows' then
+ os.setenv('GS_LIB', TEXDIR..'/tlpkg/tlgs/lib;'..TEXDIR..'/tlpkg/tlgs/fonts')
+ os.setenv('PATH', TEXDIR..'/tlpkg/tlgs/bin;'..os.getenv('PATH'))
+ gs='gswin32c'
+else
+ gs='gs'
+end
+
+command={gs}
+files={}
+options={}
+
+PDF_level='1.4'
+if string.find(basename(arg[0]), '12') then
+ PDF_level='1.2'
+elseif string.find(basename(arg[0]), '13') then
+ PDF_level='1.3'
+elseif string.find(basename(arg[0]), '14') then
+ PDF_level='1.4'
+end
+
+options[#options+1]='-dCompatibilityLevel='..PDF_level
+
+for i=1, #arg do
+ if string.find(arg[i], '^-$') then
+ files[#files+1]=arg[i]
+ elseif string.find(arg[i], '^-') then
+ options[#options+1]=arg[i]
+ else
+ files[#files+1]=arg[i]
+ end
+end
+
+if #files == 1 then
+ if string.find(files[1], '^-$') then
+ outfile='-'
+ elseif string.find(filename(files[1]), '\.e*ps$') then
+ outfile=basename(files[1])..'.pdf'
+ else
+ outfile=filename(files[1])..'.pdf'
+ end
+else
+ outfile=files[2]
+end
+
+for i=1, #options do
+ command[#command+1]=options[i]
+end
+
+other_opts={'-q', '-dSAFER', '-dNOPAUSE', '-dBATCH', '-sDEVICE=pdfwrite'}
+
+for i=1, #other_opts do
+ command[#command+1]=other_opts[i]
+end
+
+command[#command+1]='-sOutputFile="'..outfile..'"'
+
+for i=1, #options do
+ command[#command+1]=options[i]
+end
+
+if #files < 1 or #files > 2 then
+ io.stderr:write('Usage: ps2pdf [options] (input.[e]ps|-) [output.pdf]\n')
+ os.exit(0)
+end
+
+
+
+other_opts={'-c', '.setpdfwrite', '-f', files[1]}
+
+for i=1, #other_opts do
+ command[#command+1]=other_opts[i]
+end
+
+command=fixwin(command)
+
+--[[ prepend an additional hyphen to activate this code
+for i=0, #command do
+ print (command[i])
+end
+os.exit(ret)
+--]]
+
+ret=os.spawn(command)
+os.exit(ret)
diff --git a/Master/texmf/scripts/tlgs/gswin32/ps2pdf12.tlu b/Master/texmf/scripts/tlgs/gswin32/ps2pdf12.tlu
new file mode 100755
index 00000000000..abe01c0a90b
--- /dev/null
+++ b/Master/texmf/scripts/tlgs/gswin32/ps2pdf12.tlu
@@ -0,0 +1,132 @@
+#!/usr/bin/env texlua
+--*-Lua-*-
+-- $Id$
+
+-- Copyright (C) 2008 Reinhard Kotucha.
+-- You may freely use, modify and/or distribute this file.
+
+-- Replacement for ps2pdf*.bat.
+-- Convert PS to PDF
+
+function fixwin (args_unix)
+ if os.type == 'windows' then
+ local args_win={} -- new table
+ args_win[0]=args_unix[1]
+ for i=1, #args_unix do
+ args_win[i]='"'..args_unix[i]..'"'
+ end
+ return args_win
+ else
+ return args_unix
+ end
+end
+
+function filename (file)
+ local filename
+ if string.find(file, '/') then -- UNIX path
+ filename=select(1, string.gsub(file, '.*/', ''))
+ elseif string.find(file, '\\') then -- Windows path
+ filename=select(1, string.gsub(file, '.*\\', ''))
+ else -- no path
+ filename=file
+ end
+ return(filename)
+end
+
+function basename (file)
+ local basename
+ local fname
+ fname=filename (file)
+ basename=select(1, string.gsub(fname, '\.%a+$', ''))
+ return(basename)
+end
+
+kpse.set_program_name('ps2pdf.bat', 'ps2pdf')
+
+TEXDIR=kpse.var_value('SELFAUTOPARENT')
+
+if os.type == 'windows' then
+ os.setenv('GS_LIB', TEXDIR..'/tlpkg/tlgs/lib;'..TEXDIR..'/tlpkg/tlgs/fonts')
+ os.setenv('PATH', TEXDIR..'/tlpkg/tlgs/bin;'..os.getenv('PATH'))
+ gs='gswin32c'
+else
+ gs='gs'
+end
+
+command={gs}
+files={}
+options={}
+
+PDF_level='1.4'
+if string.find(basename(arg[0]), '12') then
+ PDF_level='1.2'
+elseif string.find(basename(arg[0]), '13') then
+ PDF_level='1.3'
+elseif string.find(basename(arg[0]), '14') then
+ PDF_level='1.4'
+end
+
+options[#options+1]='-dCompatibilityLevel='..PDF_level
+
+for i=1, #arg do
+ if string.find(arg[i], '^-$') then
+ files[#files+1]=arg[i]
+ elseif string.find(arg[i], '^-') then
+ options[#options+1]=arg[i]
+ else
+ files[#files+1]=arg[i]
+ end
+end
+
+if #files == 1 then
+ if string.find(files[1], '^-$') then
+ outfile='-'
+ elseif string.find(filename(files[1]), '\.e*ps$') then
+ outfile=basename(files[1])..'.pdf'
+ else
+ outfile=filename(files[1])..'.pdf'
+ end
+else
+ outfile=files[2]
+end
+
+for i=1, #options do
+ command[#command+1]=options[i]
+end
+
+other_opts={'-q', '-dSAFER', '-dNOPAUSE', '-dBATCH', '-sDEVICE=pdfwrite'}
+
+for i=1, #other_opts do
+ command[#command+1]=other_opts[i]
+end
+
+command[#command+1]='-sOutputFile="'..outfile..'"'
+
+for i=1, #options do
+ command[#command+1]=options[i]
+end
+
+if #files < 1 or #files > 2 then
+ io.stderr:write('Usage: ps2pdf [options] (input.[e]ps|-) [output.pdf]\n')
+ os.exit(0)
+end
+
+
+
+other_opts={'-c', '.setpdfwrite', '-f', files[1]}
+
+for i=1, #other_opts do
+ command[#command+1]=other_opts[i]
+end
+
+command=fixwin(command)
+
+--[[ prepend an additional hyphen to activate this code
+for i=0, #command do
+ print (command[i])
+end
+os.exit(ret)
+--]]
+
+ret=os.spawn(command)
+os.exit(ret)
diff --git a/Master/texmf/scripts/tlgs/gswin32/ps2pdf13.tlu b/Master/texmf/scripts/tlgs/gswin32/ps2pdf13.tlu
new file mode 100755
index 00000000000..abe01c0a90b
--- /dev/null
+++ b/Master/texmf/scripts/tlgs/gswin32/ps2pdf13.tlu
@@ -0,0 +1,132 @@
+#!/usr/bin/env texlua
+--*-Lua-*-
+-- $Id$
+
+-- Copyright (C) 2008 Reinhard Kotucha.
+-- You may freely use, modify and/or distribute this file.
+
+-- Replacement for ps2pdf*.bat.
+-- Convert PS to PDF
+
+function fixwin (args_unix)
+ if os.type == 'windows' then
+ local args_win={} -- new table
+ args_win[0]=args_unix[1]
+ for i=1, #args_unix do
+ args_win[i]='"'..args_unix[i]..'"'
+ end
+ return args_win
+ else
+ return args_unix
+ end
+end
+
+function filename (file)
+ local filename
+ if string.find(file, '/') then -- UNIX path
+ filename=select(1, string.gsub(file, '.*/', ''))
+ elseif string.find(file, '\\') then -- Windows path
+ filename=select(1, string.gsub(file, '.*\\', ''))
+ else -- no path
+ filename=file
+ end
+ return(filename)
+end
+
+function basename (file)
+ local basename
+ local fname
+ fname=filename (file)
+ basename=select(1, string.gsub(fname, '\.%a+$', ''))
+ return(basename)
+end
+
+kpse.set_program_name('ps2pdf.bat', 'ps2pdf')
+
+TEXDIR=kpse.var_value('SELFAUTOPARENT')
+
+if os.type == 'windows' then
+ os.setenv('GS_LIB', TEXDIR..'/tlpkg/tlgs/lib;'..TEXDIR..'/tlpkg/tlgs/fonts')
+ os.setenv('PATH', TEXDIR..'/tlpkg/tlgs/bin;'..os.getenv('PATH'))
+ gs='gswin32c'
+else
+ gs='gs'
+end
+
+command={gs}
+files={}
+options={}
+
+PDF_level='1.4'
+if string.find(basename(arg[0]), '12') then
+ PDF_level='1.2'
+elseif string.find(basename(arg[0]), '13') then
+ PDF_level='1.3'
+elseif string.find(basename(arg[0]), '14') then
+ PDF_level='1.4'
+end
+
+options[#options+1]='-dCompatibilityLevel='..PDF_level
+
+for i=1, #arg do
+ if string.find(arg[i], '^-$') then
+ files[#files+1]=arg[i]
+ elseif string.find(arg[i], '^-') then
+ options[#options+1]=arg[i]
+ else
+ files[#files+1]=arg[i]
+ end
+end
+
+if #files == 1 then
+ if string.find(files[1], '^-$') then
+ outfile='-'
+ elseif string.find(filename(files[1]), '\.e*ps$') then
+ outfile=basename(files[1])..'.pdf'
+ else
+ outfile=filename(files[1])..'.pdf'
+ end
+else
+ outfile=files[2]
+end
+
+for i=1, #options do
+ command[#command+1]=options[i]
+end
+
+other_opts={'-q', '-dSAFER', '-dNOPAUSE', '-dBATCH', '-sDEVICE=pdfwrite'}
+
+for i=1, #other_opts do
+ command[#command+1]=other_opts[i]
+end
+
+command[#command+1]='-sOutputFile="'..outfile..'"'
+
+for i=1, #options do
+ command[#command+1]=options[i]
+end
+
+if #files < 1 or #files > 2 then
+ io.stderr:write('Usage: ps2pdf [options] (input.[e]ps|-) [output.pdf]\n')
+ os.exit(0)
+end
+
+
+
+other_opts={'-c', '.setpdfwrite', '-f', files[1]}
+
+for i=1, #other_opts do
+ command[#command+1]=other_opts[i]
+end
+
+command=fixwin(command)
+
+--[[ prepend an additional hyphen to activate this code
+for i=0, #command do
+ print (command[i])
+end
+os.exit(ret)
+--]]
+
+ret=os.spawn(command)
+os.exit(ret)
diff --git a/Master/texmf/scripts/tlgs/gswin32/ps2pdf14.tlu b/Master/texmf/scripts/tlgs/gswin32/ps2pdf14.tlu
new file mode 100755
index 00000000000..abe01c0a90b
--- /dev/null
+++ b/Master/texmf/scripts/tlgs/gswin32/ps2pdf14.tlu
@@ -0,0 +1,132 @@
+#!/usr/bin/env texlua
+--*-Lua-*-
+-- $Id$
+
+-- Copyright (C) 2008 Reinhard Kotucha.
+-- You may freely use, modify and/or distribute this file.
+
+-- Replacement for ps2pdf*.bat.
+-- Convert PS to PDF
+
+function fixwin (args_unix)
+ if os.type == 'windows' then
+ local args_win={} -- new table
+ args_win[0]=args_unix[1]
+ for i=1, #args_unix do
+ args_win[i]='"'..args_unix[i]..'"'
+ end
+ return args_win
+ else
+ return args_unix
+ end
+end
+
+function filename (file)
+ local filename
+ if string.find(file, '/') then -- UNIX path
+ filename=select(1, string.gsub(file, '.*/', ''))
+ elseif string.find(file, '\\') then -- Windows path
+ filename=select(1, string.gsub(file, '.*\\', ''))
+ else -- no path
+ filename=file
+ end
+ return(filename)
+end
+
+function basename (file)
+ local basename
+ local fname
+ fname=filename (file)
+ basename=select(1, string.gsub(fname, '\.%a+$', ''))
+ return(basename)
+end
+
+kpse.set_program_name('ps2pdf.bat', 'ps2pdf')
+
+TEXDIR=kpse.var_value('SELFAUTOPARENT')
+
+if os.type == 'windows' then
+ os.setenv('GS_LIB', TEXDIR..'/tlpkg/tlgs/lib;'..TEXDIR..'/tlpkg/tlgs/fonts')
+ os.setenv('PATH', TEXDIR..'/tlpkg/tlgs/bin;'..os.getenv('PATH'))
+ gs='gswin32c'
+else
+ gs='gs'
+end
+
+command={gs}
+files={}
+options={}
+
+PDF_level='1.4'
+if string.find(basename(arg[0]), '12') then
+ PDF_level='1.2'
+elseif string.find(basename(arg[0]), '13') then
+ PDF_level='1.3'
+elseif string.find(basename(arg[0]), '14') then
+ PDF_level='1.4'
+end
+
+options[#options+1]='-dCompatibilityLevel='..PDF_level
+
+for i=1, #arg do
+ if string.find(arg[i], '^-$') then
+ files[#files+1]=arg[i]
+ elseif string.find(arg[i], '^-') then
+ options[#options+1]=arg[i]
+ else
+ files[#files+1]=arg[i]
+ end
+end
+
+if #files == 1 then
+ if string.find(files[1], '^-$') then
+ outfile='-'
+ elseif string.find(filename(files[1]), '\.e*ps$') then
+ outfile=basename(files[1])..'.pdf'
+ else
+ outfile=filename(files[1])..'.pdf'
+ end
+else
+ outfile=files[2]
+end
+
+for i=1, #options do
+ command[#command+1]=options[i]
+end
+
+other_opts={'-q', '-dSAFER', '-dNOPAUSE', '-dBATCH', '-sDEVICE=pdfwrite'}
+
+for i=1, #other_opts do
+ command[#command+1]=other_opts[i]
+end
+
+command[#command+1]='-sOutputFile="'..outfile..'"'
+
+for i=1, #options do
+ command[#command+1]=options[i]
+end
+
+if #files < 1 or #files > 2 then
+ io.stderr:write('Usage: ps2pdf [options] (input.[e]ps|-) [output.pdf]\n')
+ os.exit(0)
+end
+
+
+
+other_opts={'-c', '.setpdfwrite', '-f', files[1]}
+
+for i=1, #other_opts do
+ command[#command+1]=other_opts[i]
+end
+
+command=fixwin(command)
+
+--[[ prepend an additional hyphen to activate this code
+for i=0, #command do
+ print (command[i])
+end
+os.exit(ret)
+--]]
+
+ret=os.spawn(command)
+os.exit(ret)