From: Till Maas <opensource@till.name>
Subject: properly escapee arguments for outline.main
 - a the usage of fnameescape in changeset 1098 was not correct for running
   outline.main or outline.py. This has now been corrected using vim.eval and
   shellescape

Origin: upstream, http://vim-latex.svn.sourceforge.net/viewvc/vim-latex?view=rev&revision=1105

--- a/ftplugin/latex-suite/texviewer.vim
+++ b/ftplugin/latex-suite/texviewer.vim
@@ -738,6 +738,15 @@
     set cmdheight=1
     set lazyredraw
 
+	if has('python') && Tex_GetVarValue('Tex_UsePython')
+		python retval = outline.main(vim.eval("Tex_GetMainFileName(':p')"), vim.eval("s:prefix"))
+
+		" transfer variable from python to a local variable.
+		python vim.command("""let retval = "%s" """ % re.sub(r'"|\\', r'\\\g<0>', retval))
+	else
+		let retval = system(shellescape(s:path.'/outline.py').' '.shellescape(mainfname).' '.shellescape(s:prefix))
+	endif
+
     bot split __OUTLINE__
 	exec Tex_GetVarValue('Tex_OutlineWindowHeight', 15).' wincmd _'
 
@@ -751,19 +760,7 @@
 
 	" delete everything in it to the blackhole
 	% d _
-
-	if has('python') && Tex_GetVarValue('Tex_UsePython')
-		exec 'python retval = outline.main('
-			\. 'r"' . fnameescape(fnamemodify(mainfname, ':p')) . '", '
-			\. 'r"' . s:prefix . '")'
-
-		" transfer variable from python to a local variable.
-		python vim.command("""let retval = "%s" """ % re.sub(r'"|\\', r'\\\g<0>', retval))
-
-		0put!=retval
-	else
-		exec '0r!'.shellescape(s:path.'/outline.py').' '.fnameescape(mainfname).' '.s:prefix
-	endif
+	0put!=retval
 
 	0
 
