summaryrefslogtreecommitdiff
path: root/Master/bin/win32/ps2ascii.texlua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/bin/win32/ps2ascii.texlua')
-rwxr-xr-xMaster/bin/win32/ps2ascii.texlua80
1 files changed, 80 insertions, 0 deletions
diff --git a/Master/bin/win32/ps2ascii.texlua b/Master/bin/win32/ps2ascii.texlua
new file mode 100755
index 00000000000..836d003ec96
--- /dev/null
+++ b/Master/bin/win32/ps2ascii.texlua
@@ -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.texlua', 'ps2ascii')
+
+TEXDIR=kpse.var_value('SELFAUTOPARENT')
+
+if os.type == 'windows' then
+ os.setenv('GS_LIB', TEXDIR..'/tlpkg/tlgs/lib')
+ 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)