From 26ab3812ef5ec1e9b62810807841661658f2b4e9 Mon Sep 17 00:00:00 2001 From: Piotr Strzelczyk Date: Thu, 22 Apr 2010 20:42:32 +0000 Subject: - ensure only backslash is used in USERPROFILE variable (Adobe Reader crash case) - fixed argument processing for direct execution under texlua - more doc tweaks git-svn-id: svn://tug.org/texlive/trunk@17963 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/texlive/w32_wrapper/readme.txt | 22 +++++++++++------ .../source/texk/texlive/w32_wrapper/runscript.tlu | 28 +++++++++++++++------- 2 files changed, 34 insertions(+), 16 deletions(-) (limited to 'Build/source') diff --git a/Build/source/texk/texlive/w32_wrapper/readme.txt b/Build/source/texk/texlive/w32_wrapper/readme.txt index 9d9749b4f5d..37832a93e80 100644 --- a/Build/source/texk/texlive/w32_wrapper/readme.txt +++ b/Build/source/texk/texlive/w32_wrapper/readme.txt @@ -37,13 +37,13 @@ Tcl (.tcl) -- requires installation Java (.jar) -- requires installation VBScript (.vbs) -- part of Windows - Jscript (.js) -- part of Windows + JScript (.js) -- part of Windows Batch (.bat;.cmd) -- part of Windows - For Unix-style extensionless scripts the first line of the script is - consulted for a she-bang (#!) specification of the interpreter - program. This can be an arbitrary program but it must be present on - the search path. + Finally, Unix-style extensionless scripts are searched as last and + the interpreter program is established based on the she-bang (#!) + specification on the very first line of the script. This can be + an arbitrary program but it must be present on the search path. Next, the script program needs to be installed somewhere below the 'scripts' directory under one of the TEXMF trees (consult the @@ -60,7 +60,9 @@ kpsewhich --format=texmfscripts . - Once installed the script can be called immediately with: + This should output the full path to the script if everything is + properly installed and configured. If this test is successful, + the script can be run immediately with: runscript [script arguments] @@ -106,7 +108,8 @@ process. The system shell (cmd.exe) is never called (except for batch scripts, of course). If the located script happens to be a (tex)lua script, it is loaded and called internally from within - this script, i.e. no new process is spawned. + this script, i.e. no new process is spawned. Execution is done + using a protected call, so any compile or runtime errors are catched. Source files @@ -178,4 +181,9 @@ - added tlgs and tlperl to alias_table; callable as e.g.: runscript tlperl ... - doc tweaks + 2010/04/22 + - ensure only backslash is used in USERPROFILE variable + (Adobe Reader crash case) + - fixed argument processing for direct execution under texlua + - more doc tweaks diff --git a/Build/source/texk/texlive/w32_wrapper/runscript.tlu b/Build/source/texk/texlive/w32_wrapper/runscript.tlu index 718fdb938c2..95e9ddbb3cb 100644 --- a/Build/source/texk/texlive/w32_wrapper/runscript.tlu +++ b/Build/source/texk/texlive/w32_wrapper/runscript.tlu @@ -48,13 +48,13 @@ local helpstr = [[ Tcl (.tcl) -- requires installation Java (.jar) -- requires installation VBScript (.vbs) -- part of Windows - Jscript (.js) -- part of Windows + JScript (.js) -- part of Windows Batch (.bat;.cmd) -- part of Windows - For Unix-style extensionless scripts the first line of the script is - consulted for a she-bang (#!) specification of the interpreter - program. This can be an arbitrary program but it must be present on - the search path. + Finally, Unix-style extensionless scripts are searched as last and + the interpreter program is established based on the she-bang (#!) + specification on the very first line of the script. This can be + an arbitrary program but it must be present on the search path. Next, the script program needs to be installed somewhere below the 'scripts' directory under one of the TEXMF trees (consult the @@ -71,7 +71,9 @@ local helpstr = [[ kpsewhich --format=texmfscripts . - Once installed the script can be called immediately with: + This should output the full path to the script if everything is + properly installed and configured. If this test is successful, + the script can be run immediately with: runscript [script arguments] @@ -119,7 +121,8 @@ local docstr = [[ process. The system shell (cmd.exe) is never called (except for batch scripts, of course). If the located script happens to be a (tex)lua script, it is loaded and called internally from within - this script, i.e. no new process is spawned. + this script, i.e. no new process is spawned. Execution is done + using a protected call, so any compile or runtime errors are catched. Source files @@ -191,6 +194,11 @@ local docstr = [[ - added tlgs and tlperl to alias_table; callable as e.g.: runscript tlperl ... - doc tweaks + 2010/04/22 + - ensure only backslash is used in USERPROFILE variable + (Adobe Reader crash case) + - fixed argument processing for direct execution under texlua + - more doc tweaks ]] -- HELPER SUBROUTINES -- @@ -308,7 +316,7 @@ else -- we must be called as: texlua runscript.tlu progname ... -- this is treated the same as: runscript[.exe] progname ... -- we don't have the unparsed arument line in this case, so construct one - for k = 1, #arg do argline = argline..' '.._q(arg[k]) end + for k = #arg, 1, -1 do argline = _q(arg[k]) .. ' ' .. argline end end -- special behaviour when called under 'runscript' name @@ -401,6 +409,8 @@ if string.find(','..shell_escape_commands..',', ','..progname..',', 1, true) the -- because they are not searched for with kpathsea) os.setenv('TEXMFSCRIPTS', kpse.var_value('TEXMF_RESTRICTED_SCRIPTS')) end +-- Adobe Reader crash case: make sure USERPROFILE is not "slashed" +os.setenv("USERPROFILE", os.getenv("USERPROFILE"):gsub('/', '\\')) -- alias table (programs with special needs) @@ -536,7 +546,7 @@ end end -- MAIN_CHUNK --- execute main_proc with pcall to catch any runtime errors +-- execute MAIN_CHUNK with pcall to catch any runtime errors local success, errormsg = pcall(MAIN_CHUNK) if not success then -- cgit v1.2.3